【发布时间】:2019-09-02 21:33:17
【问题描述】:
我目前正在尝试将经过训练的 TensorFlow 模型导出为 ProtoBuf 文件,以便在 Android 上将其与 TensorFlow C++ API 一起使用。因此,我使用的是freeze_graph.py 脚本。
我使用tf.train.write_graph 导出了我的模型:
tf.train.write_graph(graph_def, FLAGS.save_path, out_name, as_text=True)
我正在使用通过tf.train.Saver 保存的检查点。
我调用freeze_graph.py,如脚本顶部所述。编译后,我运行
bazel-bin/tensorflow/python/tools/freeze_graph \
--input_graph=<path_to_protobuf_file> \
--input_checkpoint=<model_name>.ckpt-10000 \
--output_graph=<output_protobuf_file_path> \
--output_node_names=dropout/mul_1
这给了我以下错误信息:
TypeError: Cannot interpret feed_dict key as Tensor: The name 'save/Const:0' refers to a Tensor which does not exist. The operation, 'save/Const', does not exist in the graph.
由于错误状态,我的导出模型中没有张量 save/Const:0。但是,freeze_graph.py 的代码表示可以通过标志 filename_tensor_name 指定此张量名称。不幸的是,我找不到关于这个张量应该是什么以及如何为我的模型正确设置它的任何信息。
谁能告诉我如何在导出的 ProtoBuf 模型中生成 save/Const:0 张量或如何正确设置标志 filename_tensor_name?
【问题讨论】:
标签: python tensorflow protocol-buffers