android - 将 retrained_graph.pb 转换为 tflite 模型
问题描述
我无法将从 retrain 获得的 retrained_graph.pb 文件(inception-V3)模型转换为 Android 应用程序的 .tflite 模型。
编写 retrained_graph.pb 文件的代码是:
output_graph_def = graph_util.convert_variables_to_constants(sess, graph.as_graph_def(), [FINAL_TENSOR_NAME])
with gfile.FastGFile(graph_file_name, 'wb') as f:
f.write(output_graph_def.SerializeToString())
转换为 tflite 时出现错误:RuntimeError:在 SavedModel 中找不到与标签 {'serve'} 关联的 MetaGraphDef。
代码是:
converter = tf.lite.TFLiteConverter.from_saved_model(saved_model_dir)
tflite_model = converter.convert()
open("converted_model.tflite", "wb").write(tflite_model)
所以有人请帮我解决这个问题,以便我可以轻松地将 .pb 文件转换为 .tflite 文件。
解决方案
我可以使用以下命令将通过迁移学习方法获得的 retrained_graph.pb 模型文件转换为 tflite 文件:
toco --graph_def_file=/saved_model.pb --output_file=C:/Users/sunil.gc/tf-python/src/saved_model.tflite --input_format=TENSORFLOW_GRAPHDEF --output_format=TFLITE --input_shape=1,299,299,3 -- input_array=Mul --output_array=final_result --inference_type=FLOAT --input_type=FLOAT
详细教程在给定的链接中
推荐阅读
- python - 如何将字符串转换为日期格式
- unreal-engine4 - 如何访问此控件蓝图的 C++ 父级中的子控件
- linux - Linux终端 - 跳转到命令输出消息的第一行
- firebase - Firebase Auth 电子邮件验证未发送到某些电子邮件提供商(iCloud,可能还有其他)
- node.js - mongodb中updateOne查询中的多个条件
- c - 如何使用空格重新排列数组?
- webots - 在 webbots 中为类人机器人设置特定旋转时出现问题
- mysql - 适合初学者的网页设计
- mysql - Table Join in SQL not returning expected results
- python - 如何在kivy中保存复选框值,所以当我重新打开应用程序时,复选框值仍然相同并且不会被重置