Python 如何在Tensorflow中找到冻结模型(pb文件)中的输出节点名称?

Python 如何在Tensorflow中找到冻结模型(pb文件)中的输出节点名称?,python,tensorflow,Python,Tensorflow,我正在尝试将冻结的_model.pb转换为tensorflow JS兼容(.pb)文件,该文件基于tensorflow的SSD Mobilenet V2 COCO预训练模型。我被困在如何获取使用tensorflowjs_转换器时所需的output_node_names参数上。如何知道输出节点的名称 我尝试使用下面的Python脚本获取操作名,但无法理解哪一个是输出节点 def load_graph(model_file): graph = tf.Graph() graph_def = t

我正在尝试将冻结的_model.pb转换为tensorflow JS兼容(.pb)文件,该文件基于tensorflow的SSD Mobilenet V2 COCO预训练模型。我被困在如何获取使用tensorflowjs_转换器时所需的output_node_names参数上。如何知道输出节点的名称

我尝试使用下面的Python脚本获取操作名,但无法理解哪一个是输出节点

def load_graph(model_file):
  graph = tf.Graph()
  graph_def = tf.GraphDef()

  with open(model_file, "rb") as f:
    graph_def.ParseFromString(f.read())
  with graph.as_default():
    tf.import_graph_def(graph_def)

  return graph

graph = load_graph('frozen_model.pb')
ops = graph.get_operations()

首先,您可以检查
图形中的所有节点,如下所示:

for node in graph_def.node
    print(node.name)
或者,如果您想直观地查看图形并确定将哪个节点用作输出,可以使用TensorBoard。有一个工具叫做。它基本上是使用几行代码将图形写入一个
log\u dir
,您可以将tensorboard指向它。您只需将这些行复制到您自己的脚本中即可实现相同的功能,而无需从tensorflow repo构建

第三,还有另一种工具叫做:

bazel build tensorflow/tools/graph_transforms:summarize_graph
bazel-bin/tensorflow/tools/graph_transforms/summarize_graph --in_graph=/path/to/your/graph.pb