参考博客:https://blog.csdn.net/u010099080/article/details/77426577
https://cloud.tencent.com/developer/article/1015066
TensorBoard 是用于可视化 TensorFlow 模型的训练过程的工具。
1、如何工作:
TensorBoard 是通过一些操作(summary operations)将数据记录到文件(event files)中,然后再读取文件来完成作图的。想要在浏览器上看到 TensorBoard 页面,大概需要这几步:
- summary。在定义计算图的时候,在适当的位置加上一些 summary 操作
- merge。你很可能加了很多 summary 操作,我们需要使用
tf.summary.merge_all
来将这些 summary 操作聚合成一个操作,由它来产生所有 summary 数据。 - run。在没有运行的时候这些操作是不会执行任何东西的,仅仅是定义了一下而已。在运行(开始训练)的时候,我们需要通过 tf.summary.FileWriter() 指定一个目录来告诉程序把产生的文件放到哪。然后在运行的时候使用 add_summary() 来将某一步的 summary 数据记录到文件中。
当训练完成后,进入存放指定文件的目录下,在命令行中使用tensorboard --logdir='文件所在路径'来启动tensorboard.按照指定浏览器页面打开。
2、目前 TensorBoard 主要包括下面几个面板:
(图从参考博客截取的)
SCALARS
面板主要用于记录诸如准确率、损失和学习率等单个值的变化趋势。在代码中用tf.summary.scalar()
来将其记录到文件中- 如果你的模型输入是图像(的像素值),然后你想看看模型每次的输入图像是什么样的,以保证每次输入的图像没有问题(因为你可能在模型中对图像做了某种变换,而这种变换是很容易出问题的),
IMAGES
面板就是干这个的,它可以显示出相应的输入图像,默认显示最新的输入图像 GRAPHS
面板可以展示出你所构建的网络整体结构,显示数据流的方向和大小,也可以显示训练时每个节点的用时、耗费的内存大小以及参数多少DISTRIBUTIONS
主要用来展示网络中各参数随训练步数的增加的变化情况,可以说是 多分位数折线图 的堆叠