尝试将tf模型转换为tflite模型时出错

时间:2019-11-25 13:16:07

标签: tensorflow keras tensorflow-lite

import tensorflow as tf
from tensorflow import lite


converter = tf.lite.TFLiteConverter.from_saved_model("C:/tmp")

model = converter.convert()

open("converted_model.lite", "wb").write(model)

它给出了

ValueError: This converter can only convert a single ConcreteFunction. Converting multiple functions is under development.

是否可以解决此问题或将我的.pb模型转换为keras(h5)模型?

1 个答案:

答案 0 :(得分:0)

尝试使用具体功能:

import tensorflow as tf
from tensorflow import lite


saved_model_obj = tf.saved_model.load(export_dir="C:/tmp")
concrete_func = saved_model_obj.signatures['serving_default']
converter = tf.lite.TFLiteConverter.from_concrete_functions([concrete_func])

# print(saved_model_obj.signatures.keys())
# converter.optimizations = [tf.lite.Optimize.DEFAULT]
# converter.experimental_new_converter = True

model = converter.convert()

open("converted_model.lite", "wb").write(model)

serving_default是SavedModels中签名的默认密钥。

如果不起作用,请尝试取消注释converter.experimental_new_converter = True及其上方的两行。

简短说明

基于Concrete functions guide

TensorFlow 2中的急切执行将立即评估操作,而无需构建图形。 要保存模型,您需要将图形包装在可调用的python中:一个具体函数。