您的位置:首页 > 其它

tensorflow(5) Tensorboard可视化

2017-10-20 11:05 260 查看
标签(空格分隔): tensorflow

1.serializing the data

tensorboard的工作原理是通过读入tensorflow event file,这个文件里面存的是summary Data。

summary data 是从graph里面收集而来的,找到你想收集summary data的节点,在这个节点上添加tf.summary.scalar op,然后给scalar_summary加上一个tag。

比如你想直到mnist训练过程中学习率和目标函数的变化情况,就可以给learning rate 和loss function的输出节点各加上一个tf.summary.scalar的operation,然后给他们打上learning rate 和loss function的tag。

如果想看激励的分布,或者梯度、权重的分布,添加tf.summary.histogram

tensorflow中的op,如果你不运行它的话,它就在那里静止不动。所以我们创建的summary op,要先把他们结合成一个总的op,然后run。

tf.summary.merge_all
: 结合所有的summary nodes

run: 会在给定的step生成所有summary Data的object protobuf,如果要写入,用tf.summary.FileWriter

可以每步都写入,也可以n步写入一次

tensorflowboard API

tf.scalar_summary(tags, values, collections=None, name=None)

tf.image_summary(tag, tensor, max_images=3, collections=None, name=None)

tf.audio_summary(tag, tensor, sample_rate, max_outputs=3, collections=None, name=None)

tf.histogram_summary(tag, values, collections=None, name=None)


上述这组API分别对标量,图片,音频以及柱状图进行汇总统计,以Protocol Buffer结构进行表示。

代码怎么用还没看

加了summary的mnist

2.启动tensorboard

如果是源码安装的,按照如下方式启动

python path/to/tensorboard.py --logdir=path/to/log/dir


我的tensorboard安装在

/home/lgy/anaconda2/envs/pycharm_tf/lib/python2.7/site-packages/tensorflow/tensorboard

我创建一个软链接

sudo ln -s /home/lgy/anaconda2/envs/pycharm_tf/lib/python2.7/site-packages/tensorflow/tensorboard/tensorboard.py /usr/local/bin/tensorboard


以后就可以直接用

tensorboard --logdir=path/to/log-directory


一旦 TensorBoard 开始运行,你可以通过在浏览器中输入 localhost:6006 来查看 TensorBoard。

若果由pip安装到了系统目录,按照如下方式启动

3. tensorboard graph visualize

默认显示第一层namescope,里面包含了很多节点,要不然成千上万个节点,没法显示。

graph中有两种连接,一种是数据依赖 ,用实线连接,一种是控制依赖,用虚线连接

有些节点和其他节点有很多连接,比如初始化。如果都画上线,就会显得很乱。为了减少连线,使图像更加直观,可以用辅助节点来表示。

还有一个简化试图的方法是折叠,适用于结构相同,但是命名末尾数字不相同的节点。

Color有两种,Structure是结构视图,相同结构有相同的颜色,灰色节点的结构是唯一的

Device是设备视图,紫色代表GPU,绿色代表CPU

一些图标的意义如下图:

4. tensorboard histogram

主要是讲怎么是用tf.summary.histogram

比如说正太分布,如下图

the histogram at timestep 176 has a bin centered at 2.25 with 177 elements in that bin.

直方图的bin是指数分布的,这样就能应对很大的数了,并且重新采样数据使它变成均匀分布的bins

参考

tensorflow/README.md at r1.2 · tensorflow/tensorflow

Module: tf.summary | TensorFlow

TensorBoard: Visualizing Learning | TensorFlow

TensorBoard: Graph Visualization | TensorFlow

TensorBoard实践介绍(2017年TensorFlow开发大会) - YouTube
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: