TensorBoard:Visualizing Learning 学习笔记
为了更方便的理解、调试和优化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的启动命令的根目录需要和日志的根目录保持一致。
在浏览器中输入地址localhost:6006
可以看到有7大模块:
- SCALARS
- IMAGES
- AUDIO
- GRAPHS
- DISTRIBUTIONS
- HISTOGRAMS
- EMBEDDINGS
posted on 2017-03-15 12:12 Mrs.Totoro 阅读(604) 评论(0) 编辑 收藏 举报