Конвертер в TensorFlow
Если модель нужна на устройстве
с ограниченной памятью, её
переводят в компактный формат.
Класс TFLiteConverter
строит такой файл из объекта
Keras через метод
from_keras_model.
Создадим маленькую цепочку, один раз вызовем её для фиксации формы и получим массив байтов:
import tensorflow as tf
tf.keras.utils.set_random_seed(0)
model = tf.keras.Sequential([
tf.keras.layers.Dense(
1, input_shape=(2,)
),
])
model(tf.constant([[0.5, 1.0]]))
converter = (
tf.lite.TFLiteConverter.from_keras_model(
model
)
)
tflite_model = converter.convert()
print(type(tflite_model).__name__)
# выведет bytes
Результат конвертации можно сохранить в файл или передать интерпретатору. Проверим, что буфер не пустой:
import tensorflow as tf
tf.keras.utils.set_random_seed(0)
model = tf.keras.Sequential([
tf.keras.layers.Dense(
2, input_shape=(3,)
),
tf.keras.layers.Dense(1),
])
model(tf.constant([[1.0, 0.0, -1.0]]))
converter = (
tf.lite.TFLiteConverter.from_keras_model(
model
)
)
tflite_model = converter.convert()
print(len(tflite_model) > 0)
# выведет True
Соберите цепочку с одним выходом для двух признаков. Получите из неё lite-буфер и выведите тип этого объекта.
Подготовьте модель: вход
длины 3, скрытый
блок на 2 числа,
один выход. Переведите её
в байты и выведите, больше
ли длина буфера нуля.
Создайте полносвязную сеть
для одного признака и
ответа 1. После
одного прогона сформируйте
компактный файл в памяти
и выведите его размер
в байтах.