将SSD转换为tensorflow中的冻结图形。必须使用哪些输出节点名称?

将SSD转换为tensorflow中的冻结图形。必须使用哪些输出节点名称?,tensorflow,object-detection,tensorflow-ssd,Tensorflow,Object Detection,Tensorflow Ssd,我按照描述使用SSD进行了培训。它生成一个ckpt、meta和索引文件。为了在我的图像上运行它,我尝试检查演示代码。它要求将模型转换为冻结图。我试图将我的模型转换为一个冻结的推理图,如前所述。在该程序中,我必须提供输出节点名称。我无法找出SSD模型中必须在此处使用的节点的名称。请帮忙。我尝试了'num_detections:0'、'detection_box:0'等,结果得到错误: AssertionError:num_detections不在图形中您可以通过self:浏览图形并查找节点名称。我

我按照描述使用SSD进行了培训。它生成一个ckpt、meta和索引文件。为了在我的图像上运行它,我尝试检查演示代码。它要求将模型转换为冻结图。我试图将我的模型转换为一个冻结的推理图,如前所述。在该程序中,我必须提供输出节点名称。我无法找出SSD模型中必须在此处使用的节点的名称。请帮忙。我尝试了'num_detections:0'、'detection_box:0'等,结果得到错误:


AssertionError:num_detections不在图形中

您可以通过self:浏览图形并查找节点名称。我可以从我的模型中给出示例:“prefix/digit1/Softmax:0”(在我的keras模型中是“digit1”)
我还记得,您应该为transform_graph utility(“输出”参数)提供这些名称的列表。

在Tensorflow对象检测API中,我们有一个特殊的工具来转换为冻结图——只需运行二进制文件。使用此工具的说明如下。

我正在使用这个小python脚本根据其操作对节点进行本地化。 “占位符”和“标识”似乎对查找输入和输出节点很感兴趣:

import tensorflow as tf

NODE_OPS = ['Placeholder','Identity']
MODEL_FILE = '/path/to/frozen_inference_graph.pb'

gf = tf.GraphDef()
gf.ParseFromString(open(MODEL_FILE,'rb').read())

print([n.name + '=>' +  n.op for n in gf.node if n.op in (NODE_OPS)])