如何获取输入/输出名称来创建.pb文件

时间:2018-04-29 05:46:55

标签: python python-3.x tensorflow object-detection-api

我使用我的数据集训练了Tensorflow的对象检测API模型。保存模型后,我有三个文件:

  • model.ckpt-10000.data-00000-的-00001
  • model.ckpt-10000.meta
  • model.ckpt-10000.index

从这些文件中,我想创建一个.pb文件。我用Google搜索并意识到我可以使用" freeze_graph.py"包含在Tensorflow项目中。但是要使用freeze_graph.py,我需要输入/输出名称。

有些人建议使用" summarize_graph工具",但要这样做,我需要在参数中提供.pb文件。我需要输出/输入名称来创建.pb文件,所以我不能使用" summarize_graph工具"因为我还没有.pb文件。

我看到了这个问题:How do you get the name of the tensorflow output nodes in a Keras Model?
但它只给了我数千个可能的输出/输入节点名称。

所以我的问题是:
如何在没有.pb文件的情况下获得输入/输出节点?

1 个答案:

答案 0 :(得分:0)

我发现有一个工具来冻结对象检测API的图形,可以在没有输入/输出名称的情况下使用它。 有关命令,请参阅here。就像这样:

# From tensorflow/models/research/
python object_detection/export_inference_graph.py \
    --input_type image_tensor \
    --pipeline_config_path ${PIPELINE_CONFIG_PATH} \
    --trained_checkpoint_prefix ${TRAIN_PATH} \
    --output_directory output_inference_graph.pb

然后我从这三个文件中获得了一个.pb文件:model.ckpt-10000.data-00000-of-00001,model.ckpt-10000.meta,model.ckpt-10000.index。

或者,如果您已有.pb文件,则可以使用: https://github.com/tensorflow/tensorflow/blob/master/tensorflow/tools/graph_transforms/README.md#inspecting-graphs

相关问题