将 tensorflow 模型转换为精简版时出现问题
Problem converting tensorflow model to lite version
我已经成功创建了一个 TensorFlow 模型,通过自定义操作保存为 SavedModel .pb 格式。
我的问题是我无法使用命令行实用程序或 python API
将其转换为精简版
我的pythonAPI是:
import tensorflow as tf
import os
import custom_op
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
converter = tf.lite.TFLiteConverter.from_saved_model("./SavedModel")
converter.target_ops = [tf.lite.OpsSet.TFLITE_BUILTINS,
tf.lite.OpsSet.SELECT_TF_OPS]
tflite_model = converter.convert()
open("converted_model.tflite", "wb").write(tflite_model)
但转换失败并出现错误:
ValueError: Provide an input shape for input array 'X'.
我假设是因为我的占位符没有形状类型。我不明白为什么正常的 TensorFlow 模型在没有它的情况下也能正常工作。
有什么帮助吗?
如 TensorFlow Lite documentation 中所述,您可以在 tf.lite.TFLiteConverter.from_saved_model
中传递不同的参数。
For more complex SavedModels, the optional parameters that can be passed into TFLiteConverter.from_saved_model()
are input_arrays, input_shapes, output_arrays, tag_set and signature_key
. Details of each parameter are available by running help(tf.lite.TFLiteConverter)
.
您可以按照 here 所述传递此信息。您需要为输入数组 'X' 提供输入形状。喜欢,
tf.lite.TFLiteConverter.from_saved_model("./Saved_model", input_shapes={("X" : [1,H,W,C])})
我已经成功创建了一个 TensorFlow 模型,通过自定义操作保存为 SavedModel .pb 格式。
我的问题是我无法使用命令行实用程序或 python API
将其转换为精简版我的pythonAPI是:
import tensorflow as tf
import os
import custom_op
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
converter = tf.lite.TFLiteConverter.from_saved_model("./SavedModel")
converter.target_ops = [tf.lite.OpsSet.TFLITE_BUILTINS,
tf.lite.OpsSet.SELECT_TF_OPS]
tflite_model = converter.convert()
open("converted_model.tflite", "wb").write(tflite_model)
但转换失败并出现错误:
ValueError: Provide an input shape for input array 'X'.
我假设是因为我的占位符没有形状类型。我不明白为什么正常的 TensorFlow 模型在没有它的情况下也能正常工作。
有什么帮助吗?
如 TensorFlow Lite documentation 中所述,您可以在 tf.lite.TFLiteConverter.from_saved_model
中传递不同的参数。
For more complex SavedModels, the optional parameters that can be passed into
TFLiteConverter.from_saved_model()
areinput_arrays, input_shapes, output_arrays, tag_set and signature_key
. Details of each parameter are available by runninghelp(tf.lite.TFLiteConverter)
.
您可以按照 here 所述传递此信息。您需要为输入数组 'X' 提供输入形状。喜欢,
tf.lite.TFLiteConverter.from_saved_model("./Saved_model", input_shapes={("X" : [1,H,W,C])})