使用tensorboard查看中间层输出结果一般需要在源程序中添加以下几条命令
1:
1 | summary_op = tf.summary.merge_all() |
需要添加在sess.run()开始循环迭代之前,不要添加在循环内部,可能会造成多次创建总结数据。
2:
1 | summary_str = sess.run(summary_op, feed_dict={in_image: input_full}) |
需要添加在sess.run()之后。
3:
show_feature_map_direct(layer=conv10, layer_name="conv10", num_or_size_splits=12, axis=3, max_outputs=3)
在每一个想要查看的中间层代码后,添加如上代码。
layer: 想要输出的层结果,
layer_name:输出层的scope/name,
num_or_size_splits:输出层的层数。
可以放在卷积层后,也可以放在残差层后:
conv10 = slim.conv2d(conv9, 12, [1, 1], rate=1, activation_fn=None, scope='g_conv10')
conv10 = tf.add(conv10, add_result, name='g_add_conv10')
4:
添加显示图函数到代码中供调用:
1 | def show_feature_map_direct(layer, layer_name, num_or_size_splits, axis, max_outputs): |
5:
运行时,在控制台命令行执行tensorboard命令,将会同时记录日志文件到mid_result文件夹中。
tensorboard --logdir='./mid_result'
浏览器访问http://127.0.0.1:6006 即可看到tensorboard的控制台。
6:
如果为远程服务器,可以从本地命令行新建立ssh链接
ssh -L 16006:127.0.0.1:6006 account@server.address
然后在本地浏览器访问http://127.0.0.1:16006 即可查看tensorboard控制台。
引用:
https://www.tensorflow.org/guide/summaries_and_tensorboard