将retrained_graph.pb转换为tflite模型

时间:2019-07-10 15:50:20

标签: android tensorflow machine-learning computer-vision

我无法将从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文件。

1 个答案:

答案 0 :(得分:0)

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