TensorFlow自带的一个强大的可视化工具,在Win7 64位Anaconda安装Python 3.6.1采用pip install tensorflow-gpu==1.4.0(版本可变,如1.7.0(upgrade),或1.2.1(degrade)等)安装TensorFlow时自带的TensorBoard,具体页面示例如下所示:
在上图中,GRAPHS选项用于显示网络架构,IMAGES选项展示训练过程中记录的图像,HISTOGRAMS选项展示训练过程中记录的数据的分布图,AUDIO展示训练过程中记录的音频,其它选项功能不再一一介绍。TensorBoard在运行过程中,记录结构化的数据,运行一个本地服务器,监听6006端口,请求时,分析记录的数据,绘制相关曲线图。
为了让TensorBoard在运行时显示相关数据,除了要记录相关日志文件,还要编程添加要查看的输出,将其添加到日志文件,建立日志文件的示例如下(存储路径LOG_FOLDER + "\\train"):
train_writer = tf.summary.FileWriter(LOG_FOLDER + '\\val', sess.graph)
test_writer = tf.summary.FileWriter(LOG_FOLDER + '\\val')
然后可以根据要查看的变量,添加到train_writer或test_writer中,不同版本的TensorFlow添加方法,在编程时还是有些变化的,如下所示在
tensorflow-gpu==1.4.0添加的具体方法如下所示:
train_writer.add_summary(summary_string, global_step_np)
然后就可以在运行Python文件的过程中,记录你想要追踪的Tensor,如下图所示:
with tf.name_scope('output_act'):
hidden = tf.nn.relu6(tf.matmul(reshape, output_weights[0]) + output_biases)
tf.histogram_summary('output_act', hidden)
在上述代码中,histogram_summary用于生成分布图,也可以用scalar_summary记录数值。具体示例如下:
def variable_summaries(var, name):
"""Attach a lot of summaries to a Tensor."""
with tf.name_scope('summaries'):
mean = tf.reduce_mean(var)
tf.scalar_summary('mean/' + name, mean)
with tf.name_scope('stddev'):
stddev = tf.sqrt(tf.reduce_sum(tf.square(var - mean)))
tf.scalar_summary('sttdev/' + name, stddev)
tf.scalar_summary('max/' + name, tf.reduce_max(var))
tf.scalar_summary('min/' + name, tf.reduce_min(var))
tf.histogram_summary(name, var)
最后要添加如下操作,代表执行所有summary操作,这样可以避免人工执行每一个summary op:
merged = tf.merge_all_summaries()
summary, _, l, predictions =
session.run([merged, optimizer, loss, train_prediction], options=run_options, feed_dict=feed_dict)
train_writer.add_summary(summary, step)
接下来要打开TensorBoard,如下步骤:
1.在命令行窗口(此处指Anaconda Prompt)输入:
tensorboard --logdir E:\VSproject\Pycharm\mnist-master\tboard_logs(日志文件路径示例,如前文LOG_FOLDER + "\\train")
2. 在浏览器地址栏输入 localhost:6006/ 回车即可,正常情况下便可显示TensorBoard界面。
参考:
1. TensorFlow深度学习笔记 Tensorboard入门
2. TensorFlow学习笔记(7):TensorBoard——Tensor与Graph可视化