TensorBoard:Visualizing Learning 学习笔记

时间:2023-12-13 09:38:14

为了更方便的理解、调试和优化TF程序,我们可以使用TensorBoard(可视化工具)。可以使用TensorBoard查看graph,绘制图表执行过程中的定量指标。TensorBoard是完全可配置的。

1 序列化数据(Serializing the data)到磁盘

TensorBoard通过读取TF事件文件进行操作,该文件包含了在TF运行过程中产生的摘要数据(summary data)

首先创建从中要收集摘要数据的TF图,并决定图中的哪些点(nodes)需要summary operations。比如需要记录随时间进行,学习率的变化和目标函数的改变。我们可以分别将学习率输出节点和损失输出节点加上tf.summary.scalar操作。并给每个scalar_summary一个有含义的标记,如‘learning rate’和‘loss function’。

或者想看看特定层的激活函数的分布,或梯度和权重的分布。通过将tf.summary.histogram分别附加到梯度输出和权重的变量,来收集数据。

所有的summary operations:

  • tf.summary.tensor_summary
  • tf.summary.scalar
  • tf.summary.histogram
  • tf.summary.audio
  • tf.summary.image
  • tf.summary.merge
  • tf.summary.merge_all

Class for writing Summaries

  • tf.summary.FileWriter
  • tf.summary.FileWriterCache

为了产生这些摘要数据,我们需要运行这些summary nodes。单独管理这些节点比较麻烦,因此使用tf.summary.merge_all将它们合并为一个单独的操作,来产生所有的摘要数据。最后通过tf.summary.FileWriter将摘要数据写到磁盘。

手写字体识别例子的源代码:

https://github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/tutorials/mnist/mnist_with_summaries.py

其中程序的最后一段:

parser.add_argument('--data_dir', type=str, default='/tmp/tensorflow/mnist/input_data',
help='Directory for storing input data')
parser.add_argument('--log_dir', type=str, default='/tmp/tensorflow/mnist/logs/mnist_with_summaries',
help='Summaries log directory')

注:上面代码中路径的写法,绝对路径为该python文件所在的磁盘根路径+default指定的路径。比如该python在C:\XXX\XXX,则default='C:/tmp/tensorflow/mnist/logs/mnist_with_summaries'

可以在程序中根据需要改为自定义的路径如:

default='C:\\TMP\\TF\\MNIST_data'

(或者default='C:/TMP/TF/MNIST_data')

default='C:\\TMP\\TF\\logs\\mnist_with_summaries'

(或者default='C:/TMP/TF/logs/mnist_with_summaries')

  

或者在命令行运行程序时,指定自定义路径如:

python xx.py --data_dir=C:\\TMP\\TF\\MNIST_data --log_dir=C:\\TMP\\TF\\logs\\mnist_with_summaries

(或者python xx.py --data_dir=C:/TMP/TF/MNIST_data --log_dir=C:/TMP/TF/logs/mnist_with_summaries)

  

2  启动TensorBoard

在命令行运行如下命令:tensorboard --logdir=path/to/log-directory

在本例中:

tensorboard --logdir=C:/TMP/TF/logs/mnist_with_summaries --debug

(或者tensorboard --logdir=/TMP/TF/logs/mnist_with_summaries --debug)

  

注意:tensorborad的启动命令的根目录需要和日志的根目录保持一致。

TensorBoard:Visualizing Learning 学习笔记

在浏览器中输入地址localhost:6006

TensorBoard:Visualizing Learning 学习笔记

可以看到有7大模块:

  • SCALARS
  • IMAGES
  • AUDIO
  • GRAPHS
  • DISTRIBUTIONS
  • HISTOGRAMS
  • EMBEDDINGS