在 python 中加载 Tensorflow Lite 模型
Load Tensorflow Lite models in python
我正在开发一个 TinyML 项目,该项目将 Tensorflow Lite 与量化模型和浮点模型结合使用。在我的管道中,我使用 tf.keras
API 训练我的模型,然后将模型转换为 TFLite 模型。最后,我将TFLite模型量化为int8。
我可以使用 API model.save
和 tf.keras.model.load_model
保存和加载“正常”张量流模型
是否可以对转换后的 TFLite 模型执行相同的操作?每次都要经历量化过程,相当耗时
您可以使用 tflite interpreter 直接在笔记本中从 TFLite 模型进行推理。
这是图像分类模型的示例。假设我们有一个 tflite 模型:
tflite_model_file = 'converted_model.tflite'
然后我们可以这样加载和测试它:
# Load TFLite model and allocate tensors.
with open(tflite_model_file, 'rb') as fid:
tflite_model = fid.read()
interpreter = tf.lite.Interpreter(model_content=tflite_model)
interpreter.allocate_tensors()
input_index = interpreter.get_input_details()[0]["index"]
output_index = interpreter.get_output_details()[0]["index"]
# Gather results for the randomly sampled test images
predictions = []
test_labels, test_imgs = [], []
for img, label in tqdm(test_batches.take(10)):
interpreter.set_tensor(input_index, img)
interpreter.invoke()
predictions.append(interpreter.get_tensor(output_index))
test_labels.append(label.numpy()[0])
test_imgs.append(img)
请注意,您只能从 tflite 模型进行推断。您无法更改架构和层,例如重新加载 Keras 模型。如果你想改架构,你应该保存Keras模型,并测试它直到得到满意的结果,然后将它转换为tflite。
我正在开发一个 TinyML 项目,该项目将 Tensorflow Lite 与量化模型和浮点模型结合使用。在我的管道中,我使用 tf.keras
API 训练我的模型,然后将模型转换为 TFLite 模型。最后,我将TFLite模型量化为int8。
我可以使用 API model.save
和 tf.keras.model.load_model
是否可以对转换后的 TFLite 模型执行相同的操作?每次都要经历量化过程,相当耗时
您可以使用 tflite interpreter 直接在笔记本中从 TFLite 模型进行推理。
这是图像分类模型的示例。假设我们有一个 tflite 模型:
tflite_model_file = 'converted_model.tflite'
然后我们可以这样加载和测试它:
# Load TFLite model and allocate tensors.
with open(tflite_model_file, 'rb') as fid:
tflite_model = fid.read()
interpreter = tf.lite.Interpreter(model_content=tflite_model)
interpreter.allocate_tensors()
input_index = interpreter.get_input_details()[0]["index"]
output_index = interpreter.get_output_details()[0]["index"]
# Gather results for the randomly sampled test images
predictions = []
test_labels, test_imgs = [], []
for img, label in tqdm(test_batches.take(10)):
interpreter.set_tensor(input_index, img)
interpreter.invoke()
predictions.append(interpreter.get_tensor(output_index))
test_labels.append(label.numpy()[0])
test_imgs.append(img)
请注意,您只能从 tflite 模型进行推断。您无法更改架构和层,例如重新加载 Keras 模型。如果你想改架构,你应该保存Keras模型,并测试它直到得到满意的结果,然后将它转换为tflite。