首页 > 解决方案 > 将 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 文件。

标签: androidtensorflowmachine-learningcomputer-vision

解决方案


我可以使用以下命令将通过迁移学习方法获得的 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

详细教程在给定的链接中


推荐阅读