【问题标题】:error trying to conver tf model into tflite model尝试将 tf 模型转换为 tflite 模型时出错
【发布时间】:2019-11-25 13:16:07
【问题描述】:
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) 模型???

相关问题:How do i convert tensorflow 2.0 estimator model to tensorflow lite?

【问题讨论】:

  • 如果您能分享您尝试转换的模型的代码,将会很有帮助。

标签: tensorflow keras tensorflow-lite


【解决方案1】:

尝试使用具体函数:

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 中的 Eager execution 会立即评估操作,而无需构建图表。 要保存模型,您需要包含在 python 可调用对象中的 graph/s:具体函数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-27
    • 2023-01-29
    • 2018-08-17
    • 2019-01-21
    相关资源
    最近更新 更多