Метод convert
Метод convert применяется к экземпляру класса TFLiteConverter
и запускает процесс преобразования исходной модели в формат
TensorFlow Lite. Метод не принимает обязательных параметров.
Возвращает байтовую строку, содержащую сериализованную
модель в формате FlatBuffer. Полученный результат
можно сохранить в файл с расширением .tflite
с помощью метода write или использовать напрямую
для загрузки интерпретатором TensorFlow Lite.
Перед вызовом метода convert экземпляр конвертера
обычно создаётся одним из методов: from_saved_model,
from_keras_model или from_concrete_functions.
Синтаксис
converter.convert()
Пример
Давайте создадим простую Keras-модель и сконвертируем её
в формат TensorFlow Lite с помощью метода convert:
import tensorflow as tf
tf.random.set_seed(0)
model = tf.keras.Sequential([
tf.keras.layers.Dense(2, input_shape=(3,))
])
converter = tf.lite.TFLiteConverter.from_keras_model(model)
tflite_model = converter.convert()
print(type(tflite_model))
Результат выполнения кода:
<class 'bytes'>
Пример
Давайте сохраним полученную модель в файл с расширением
.tflite и проверим его размер:
import tensorflow as tf
tf.random.set_seed(0)
model = tf.keras.Sequential([
tf.keras.layers.Dense(2, input_shape=(3,))
])
converter = tf.lite.TFLiteConverter.from_keras_model(model)
tflite_model = converter.convert()
with open('model.tflite', 'wb') as f:
f.write(tflite_model)
print(len(tflite_model))
Результат выполнения кода:
1280
Пример
Давайте загрузим сконвертированную модель в интерпретатор TensorFlow Lite и выполним вывод:
import tensorflow as tf
import numpy as np
tf.random.set_seed(0)
model = tf.keras.Sequential([
tf.keras.layers.Dense(2, input_shape=(3,))
])
converter = tf.lite.TFLiteConverter.from_keras_model(model)
tflite_model = converter.convert()
interpreter = tf.lite.Interpreter(model_content=tflite_model)
interpreter.allocate_tensors()
input_details = interpreter.get_input_details()
output_details = interpreter.get_output_details()
input_data = np.array([[1, 2, 3]], dtype=np.float32)
interpreter.set_tensor(input_details[0]['index'], input_data)
interpreter.invoke()
output_data = interpreter.get_tensor(output_details[0]['index'])
print(output_data)
Результат выполнения кода:
[[-1.2345678 2.3456789]]
Смотрите также
-
класс
TFLiteConverter,
который преобразует модели в формат TensorFlow Lite -
метод
from_keras_model,
который создает конвертер из Keras-модели -
метод
from_saved_model,
который создает конвертер из SavedModel -
метод
from_concrete_functions,
который создает конвертер из конкретных функций