Dac*_*ieS 5 python android tensorflow tensorflow-lite tensorflow-estimator
下面的代码生成了常规的 tensorflow 模型,但是当我尝试将其转换为 tensorflow lite 时它不起作用,我遵循了以下文档。
https://www.tensorflow.org/tutorials/estimator/linear 1 https://www.tensorflow.org/lite/guide/get_started
export_dir = "tmp"
serving_input_fn = tf.estimator.export.build_parsing_serving_input_receiver_fn(
tf.feature_column.make_parse_example_spec(feat_cols))
estimator.export_saved_model(export_dir, serving_input_fn)
# Convert the model.
converter = tf.lite.TFLiteConverter.from_saved_model("tmp/1571728920/saved_model.pb")
tflite_model = converter.convert()
Run Code Online (Sandbox Code Playgroud)
错误信息
Traceback (most recent call last):
File "C:/Users/Dacorie Smith/PycharmProjects/JamaicaClassOneNotifableModels/ClassOneModels.py", line 208, in <module>
tflite_model = converter.convert()
File "C:\Users\Dacorie Smith\PycharmProjects\JamaicaClassOneNotifableModels\venv\lib\site-packages\tensorflow_core\lite\python\lite.py", line 400, in convert
raise ValueError("This converter can only convert a single "
ValueError: This converter can only convert a single ConcreteFunction. Converting multiple functions is under development.
Run Code Online (Sandbox Code Playgroud)
文档摘录
TensorFlow Lite 转换器 TensorFlow Lite 转换器是一种可用作 Python API 的工具,可将经过训练的 TensorFlow 模型转换为 TensorFlow Lite 格式。它还可以引入优化,这在第 4 节优化您的模型中进行了介绍。
以下示例显示了一个 TensorFlow SavedModel 被转换为 TensorFlow Lite 格式:
将张量流导入为 tf
转换器 = tf.lite.TFLiteConverter.from_saved_model(saved_model_dir) tflite_model = converter.convert() open("converted_model.tflite", "wb").write(tflite_model)
尝试使用具体的函数:
export_dir = "tmp"
serving_input_fn = tf.estimator.export.build_parsing_serving_input_receiver_fn(
tf.feature_column.make_parse_example_spec(feat_cols))
estimator.export_saved_model(export_dir, serving_input_fn)
# Convert the model.
saved_model_obj = tf.saved_model.load(export_dir="tmp/1571728920/")
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
tflite_model = converter.convert()
Run Code Online (Sandbox Code Playgroud)
serving_default是 SavedModels 中签名的默认密钥。
如果不起作用,请尝试取消注释converter.experimental_new_converter = True及其上面的两行。
简短说明
基于具体功能指南
TensorFlow 2 中的急切执行会立即评估操作,而无需构建图表。要保存模型,您需要包装在 python 可调用对象中的图形:具体函数。
| 归档时间: |
|
| 查看次数: |
1694 次 |
| 最近记录: |