参考博客:https://blog.csdn.net/sinat_33761963/article/details/62433234,写得很详细,推荐阅读~
利用Tensorboard可以记录和展示以下数据形式:
(1)首先要建立一个模型图Graph,然后可视化你想从这个Graph中获取的某些数据的信息。
(2)确定要在graph中的哪些节点放置summary operations以记录信息:
(3)在节点上放置了summary operations之后并不会直接运行,需要我们手动去启动。因此我们使用tf.summary.merge_all将所有的summary节点合并成一个节点,并通过运行这个节点启动所有的operations。
(4)使用tf.summary.FileWriter将运行后输出的数据都保存到本地磁盘中
(5)运行模型程序后,再在命令行中输入运行tensorboard的指令,之后就可以打开web端查看可视化的结果了。
此处我们使用最基础的识别手写字体(Mnist)作为我们的案例
2.1 准备工作
首先要导入需要用到的包,定义超参数,并加载mnist数据集。
2.2 创建占位符,保存输入图片数据
创建输入数据的占位符,其中包括特征x和数据标签y_
为了可视化我们输入的图片,我们使用tf.summary.image来保存我们的图片信息,语句如下:
tf.summary.image('input', image_shaped_input, 10),
其中传入的第一个参数是命名,第二个是需要可视化的图片数据,第三个是最多能够展示的张数。
2.3 初始化参数,并且汇总到summary
例:tf.summary.scalar('mean', mean)
tf.summary.histogram('histogram', var)
2.4 构建神经网络层
用直方图记录其中的信息:tf.summary.histogram('linear', preactivate)
2.5 定义损失函数
定义损失函数为cross_entropy,并且进行可视化:tf.summary.scalar('loss', cross_entropy)
2.6 训练并计算准确率
可以可视化训练的结果:tf.summary.scalar('accuracy', accuracy)
2.7 合并summary operation,初始化变量
将所有的summaries合并,并将它们写到之前定义的log_dir路径
# summaries合并
merged = tf.summary.merge_all()
# 写到指定的磁盘路径中
train_writer = tf.summary.FileWriter(log_dir + '/train', sess.graph)
test_writer = tf.summary.FileWriter(log_dir + '/test')
# 运行初始化所有变量
tf.global_variables_initializer().run()
2.8 训练模型,并写入summary
每训练一定的steps就进行一次merge,然后将summary信息写入到日志中。
summary, acc = sess.run([merged, accuracy], feed_dict=feed_dict(False))
test_writer.add_summary(summary, i)
2.9 执行程序,Tensorboard生成可视化
(1)运行整个程序,程序中定义的summary node就会将信息保存到日志文件中。
(2)运行以下代码可视化:tensorboard --logdir=