【发布时间】:2019-08-23 12:15:14
【问题描述】:
如何使用 2.0 API 将 TensorFlow 模型 2.0 转换为 tslite 模型?
我尝试将我的自定义 TensorFlow 模型导出为 tflite 格式,因为我想将此模块集成到 Android 应用程序中。编译 Python 脚本后出现奇怪的错误。
使用:Tensorflow 2.0.0 beta1 API https://www.tensorflow.org/lite/r2/convert
我尝试了这些方法来转换:
- From SavedModelFrom
- tf.Keras Model
这些点将显示在下面的代码中。
CipherNeuralModel = keras.Sequential([
keras.layers.Flatten(input_shape=[20, 20]),
keras.layers.Dense(400, activation='relu'),
keras.layers.Dense(26, activation='softmax')
])
CipherNeuralModel.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
CipherNeuralModel.fit(trainSumData, imgNumberFromLit, epochs=10, steps_per_epoch=20)
savePath = "D:\FolderToModel"
tf.saved_model.save(CipherNeuralModel, savePath)
export_model = tf.saved_model.load(savePath)
concrete_func = export_model.signatures[
tf.saved_model.DEFAULT_SERVING_SIGNATURE_DEF_KEY
]
converter = tf.lite.TFLiteConverter.from_concrete_functions([concrete_func])
# Error here
converter = converter.convert()
# Example for convert tf.keras model to tflite
# convert_model = tf.function(lambda x: CipherNeuralModel(x))
# concrete_func = convert_model.get_concrete_function(
# tf.TensorSpec(CipherNeuralModel.inputs[0].shape,
# CipherNeuralModel.inputs[0].dtype))
# convertor = tf.lite.TFLiteConverter.from_concrete_functions([concrete_func])
# tflite_model = convertor.convert()
TOCO 失败。有关信息,请参见控制台。\n%s\n%s\n" % (stdout, stderr)) tensorflow.lite.python.convert.ConverterError:TOCO 失败。看 控制台获取信息。 b'"toco_from_protos" \xad\xa5 \xef\xa2\xab\xef\xa5\xe2\xe1\xef \xa2\xad\xe3\xe2\xe0\xa5\xad\xad\xa5\xa9 \xa8\xab\xa8
【问题讨论】:
-
代码运行良好。你能提供完整的错误日志吗?另外,您使用的是 2.0 中的哪个版本的 TensorFlow?您可以安装最新版本(2.0.0b1)并检查。它应该可以正常工作。
-
我使用的是最新版本。"TOCO 失败。有关信息,请参阅控制台。\n%s\n%s\n" % (stdout, stderr)) tensorflow.lite.python.convert.ConverterError : TOCO 失败。有关信息,请参见控制台。 b'"toco_from_protos" \xad\xa5 \xef\xa2\xab\xef\xa5\xe2\xe1\xef \xa2\xad\xe3\xe2\xe0\xa5\xad\xad\xa5\xa9 \xa8\xab\ xa8\xa2\xad\xa5\xe8\xad\xa5\xa9\r\n\xaa\xae\xac\xa0\xad\xa4\xae\xa9,\xa8\xe1\xaf\xae\xab\xad\xef \xa5\xac\xae\xa9 \xaf\xe0\xae\xa3\xe0\xa0\xac\xac\xae\xa9 \xa8\xab\xa8 \xaf\xa0\xaa\xa5\xe2\xad\xeb\xac \xe4\xa0\xa9\xab\xae\xac.\r\n'
标签: python tensorflow keras tensorflow2.0