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


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( 模型???

相关问题:如何将 Tensorflow 2.0 估计器模型转换为 Tensorflow Lite?

尝试使用具体函数:

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是已保存模型中签名的默认键。

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

简短解释

基于具体功能指南

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

最新更新