如何找到冻结模型的输入和输出节点
Posted
技术标签:
【中文标题】如何找到冻结模型的输入和输出节点【英文标题】:How to find the Input and Output Nodes of a Frozen Model 【发布时间】:2018-06-20 22:53:49 【问题描述】:我想在模型动物园的冻结模型上使用 tensorflow 的 optimize_for_inference.py
脚本:ssd_mobilenet_v1_coco
。
如何查找/确定模型的输入和输出名称?
Here is a link to the graph generated by tensorboard
这个问题可能会有所帮助:Given a tensor flow model graph, how to find the input node and output node names(对我来说没有)
【问题讨论】:
【参考方案1】:我认为您可以使用以下代码。我从here 下载了ssd_mobilenet_v1_coco
冻结模型,并能够获得如下所示的输入和输出名称
!pip install tensorflow==1.15.5
import tensorflow as tf
tf.__version__ # TF1.15.5
gf = tf.GraphDef()
m_file = open('/content/frozen_inference_graph.pb','rb')
gf.ParseFromString(m_file.read())
with open('somefile.txt', 'a') as the_file:
for n in gf.node:
the_file.write(n.name+'\n')
file = open('somefile.txt','r')
data = file.readlines()
print("output name = ")
print(data[len(data)-1])
print("Input name = ")
file.seek ( 0 )
print(file.readline())
输出是
output name =
detection_classes
Input name =
image_tensor
请查看gist here。
【讨论】:
以上是关于如何找到冻结模型的输入和输出节点的主要内容,如果未能解决你的问题,请参考以下文章
如何找到张量流模型(.pb 格式的冻结图)、onnx 模型(.onnx 格式)的浮点精度,比如它是 FP32 还是 FP16?
Tensorflow 模型:如何从 proto buff 文件中识别输入/输出节点名称?