Это будет первая часть из трех частей об использовании машинного обучения в робототехнике.
Мы разобьем его на 3 этапа: создадим облегченную модель tensorflow, переместим эту модель в приложение, а затем запустим модель на мобильном устройстве. Прежде чем мы начнем, что такое tensorflow lite? Вот фрагмент из официальной документации
TensorFlow Lite — это набор инструментов, помогающих разработчикам запускать модели TensorFlow на мобильных, встроенных устройствах и устройствах IoT. Это позволяет делать выводы машинного обучения на устройстве с малой задержкой и небольшим размером двоичного файла.
По сути, это позволяет обучать модели на компьютере или сервере, а затем развертывать их в облегченную модель, которую можно запускать на смартфоне. Tensorflow lite будет очень важен в этой серии, поэтому мы настоятельно рекомендуем прочитать документацию, найденную здесь:
import tensorflow as tf from tensorflow import keras from tensorflow.python.keras import Sequential from tensorflow.python.keras.layers import Dense
Сейчас мы создадим простую модель, которая просто предсказывает результат функции y = 2x-1. Позже в этой серии мы рассмотрим использование других типов входных данных и более сложных моделей.
Давайте определим наши входы и выходы как массив длины 6:
x = [-1, 0, 1, 2, 3, 4] y = [-3, -1, 1, 3, 5, 7]
Мы создадим последовательнуюмодель с одним слоем Dense с одним нейроном:
model = Sequential() model.add(Dense(units=1, input_shape=[1]))
Затем мы компилируем модель с оптимизатором sgd(приличный стохастический градиент) и потерей mse (среднеквадратическая ошибка) и подгоняем модель к данным за 50 эпох:
model.compile(optimizer='sgd',loss='mean_squared_error') model.fit(x, y, epochs=500)
Обучение этой модели занимает всего несколько секунд из-за ее простоты. Обратите внимание, что эта модель не предназначена для обеспечения наилучшей производительности, она предназначена только для использования в качестве тестовой модели с TF Lite. Вот пример вывода ввода 10:
print(model.predict([10])) [[18.978474]]
Это значение очень близко к ожидаемому значению 19, поэтому мы уверены, что наша модель работает. Теперь мы увидим, как мы можем преобразовать это в модель TF Lite.
Начнем с создания облегченного конвертера tensorflow и использования его для преобразования модели:
converter = tf.lite.TFLiteConverter.from_keras_model(model) tflite_model = converter.convert()
Последний шаг — сохранить эту модель, чтобы мы могли использовать ее позже:
with tf.io.gfile.GFile('tf_models/test.tflite', 'wb') as f: f.write(tflite_model)
Убедитесь, что вы изменили имя папки в зависимости от того, где вы хотите его сохранить. В этом случае он сохраняется в папке с именем tf_models как test.tflite. Мы закончили с первым этапом этой серии.
Шухул Муджу — студенческий посол в программе студенческих послов Inspirit AI. Inspirit AI — это довузовская программа повышения квалификации, которая знакомит любознательных старшеклассников со всего мира с ИИ через живые онлайн-классы. Узнайте больше на https://www.inspiritai.com/.