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