参考文链:如何查看Tensorflow SavedModel格式模型的信息;
参考:summary方法--小酒窝的博客;
参考:tensorflow中输出参数的方法--详细;
tensorflow生成的pb图,netron嫌弃太大打不开, 因此需要借助于tensorboard查看工具;
0.查看模型的Signature签名
这里的签名,并非是为了保证模型不被修改的那种电子签名。我的理解是类似于编程语言中模块的输入输出信息,比如函数名,输入参数类型,输出参数类型等等。我们以《Tensorflow SavedModel模型的保存与加载》里的代码为例,从语句:
signature = predict_signature_def(inputs={'myInput': x},
outputs={'myOutput': y})
我们可以看到模型的输入名为myInput,输出名为myOutput。如果我们没有源码呢?
Tensorflow提供了一个工具,如果你下载了Tensorflow的源码,可以找到这样一个文件,./tensorflow/python/tools/saved_model_cli.py,你可以加上-h参数查看该脚本的帮助信息:
command:
python $TENSORFLOW_DIR/tensorflow/python/tools/saved_model_cli.py show --dir ./model/ --all
1.使用summary
def load_pb_kera(self,pb_file_path):
from tensorflow.python.platform import gfile
sess = tf.Session()
#with gfile.FastGFile(pb_file_path + 'model.pb', 'rb') as f:
with gfile.FastGFile(pb_file_path, 'rb') as f:
graph_def = tf.GraphDef()
graph_def.ParseFromString(f.read())
sess.graph.as_default()
tf.import_graph_def(graph_def, name='') # 导入计算图
# 需要有一个初始化的过程
#sess.run(tf.global_variables_initializer())
init = tf.global_variables_initializer()
sess.run(init)
#tf.summary.
LOGDIR = './logdir'
train_writer = tf.summary.FileWriter(LOGDIR)
train_writer.add_graph(sess.graph)
train_writer.flush()
train_writer.close()
summary写入工程文件的"./logdir"目录下,生成诸如:events.out.tfevents.1557229671.wishchin-MS-1604 文件
进入工程目录,
bash:
$ tensorboard --logdir ./logdir
启动了tensorboard服务
2.在浏览器中查看结构
打开chorme浏览器,在地址栏输入:http://localhost:6006; 个人建议使用火狐.
即可完成可视化
查看得MaskRCNN 模型
frozen_inference_graph_incepV2.pb
的输入参数为:
input_image
Operation: Placeholder
Attributes (2)
dtype {"type":"DT_FLOAT"}
shape {"shape":{"dim":[{"size":-1},{"size":224},{"size":224},{"size":3}]}}
Inputs (0)
Outputs (1)
bbn_stage1_block1_conv/convolution?×224×224×3
输入节点在最下面的数据流的起点位置....