TensorFlow-6-TensorBoard 可视化学习

原创 2017年04月26日 10:42:31

学习资料:
https://www.tensorflow.org/get_started/summaries_and_tensorboard

中文翻译:
http://wiki.jikexueyuan.com/project/tensorflow-zh/how_tos/summaries_and_tensorboard.html

今天学的内容是 TensorBoard
它的作用就是可以把复杂的神经网络训练过程给可视化,可以更好地理解 调试 优化程序。

在之前的几节,我们都只是建立了模型,例如这个代码:
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/tutorials/mnist/mnist_softmax.py

这一节我们我们可以把想看的东西显示出来,如 accuracy,cross entropy,bias 和 weights 等等。

先来看效果:

如下图,就可以在 Tensorboard 的 scalars 下看到 accuracy,cross entropy,dropout,layer1 和 layer2 的 bias 和 weights 的趋势


主要用到的了下面四个方法
其他可以看 Summary Operations:
https://www.tensorflow.org/api_guides/python/summary

  • tf.summary.scalar
  • tf.summary.histogram
  • tf.summary.merge_all
  • tf.summary.FileWriter

1. tf.summary.scalar

当你想知道 learning rate 如何变化时,目标函数如何变化时,就可以通过向节点附加 tf.summary.scalar 操作来分别输出学习速度和期望误差,可以给每个 scalary_summary 分配一个有意义的标签为 ‘learning rate’ 和 ‘loss function’,执行后就可以看到可视化的图表。

2. tf.summary.histogram

当你想看 activations, gradients 或者 weights 的分布时,可以用 tf.summary.histogram
如下图,显示了每一步的分布,越靠前面就是越新的步数的结果。

3. tf.summary.merge_all

在 TensorFlow 中,所有的操作只有当你执行,或者一个操作依赖于它的输出时才会运行。为了生成 summaries,我们需要运行所有 summary nodes,所以就用 tf.summary.merge_all 来将它们合并为一个操作,这样就可以产生所有的 summary data。

4. tf.summary.FileWriter

最后,为了将 summary data 写入磁盘,需要将 Summary protobuf 对象传递给 tf.summary.FileWriter。在这个造函数中包含了参数 logdir,这个 logdir 很重要,所有事件都会写到它所指的目录下。


那么上面的图是怎么产生的呢?

完整代码有点长,请前往链接:
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/tutorials/mnist/mnist_with_summaries.py

如果是 mac 的话,可以在终端运行上述代码:

$ python mnist_with_summaries.py

然后就可以看到打印过程:

注意代码里将 log dir 定义为下面这个地址:

所以在打开 tensorboard 时,输入相应的位置:

$ tensorboard --logdir=/tmp/tensorflow/mnist/logs/mnist_with_summaries

输入上述命令后,会打印一个 IP 地址,在浏览器打开

这样,就可以看到 bar 上的几个板块了:

除上面几个外,还可以在 graphs 里可以看到 TensorFlow model。
更详细的可以查看:
https://github.com/tensorflow/tensorflow/tree/master/tensorflow/tensorboard


再聊细一点:

关于 scalars 的生成
代码中有这样几行:

      with tf.name_scope('weights'):
        weights = weight_variable([input_dim, output_dim])
        variable_summaries(weights)
      with tf.name_scope('biases'):
        biases = bias_variable([output_dim])
        variable_summaries(biases)

在这里对 wights 和 bias 作用了 variable_summaries
variable_summaries 里面有计算 mean,max,min,stddev 的 tf.summary.scalar 操作。

  def variable_summaries(var):
    """Attach a lot of summaries to a Tensor (for TensorBoard visualization)."""
    with tf.name_scope('summaries'):
      mean = tf.reduce_mean(var)
      tf.summary.scalar('mean', mean)
      with tf.name_scope('stddev'):
        stddev = tf.sqrt(tf.reduce_mean(tf.square(var - mean)))
      tf.summary.scalar('stddev', stddev)
      tf.summary.scalar('max', tf.reduce_max(var))
      tf.summary.scalar('min', tf.reduce_min(var))
      tf.summary.histogram('histogram', var)

执行后,就可以看到下图:

TensorFlow 系
TensorFlow-5: 用 tf.contrib.learn 来构建输入函数
TensorFlow-4: tf.contrib.learn 快速入门
TensorFlow-3: 用 feed-forward neural network 识别数字
TensorFlow-2: 用 CNN 识别数字
TensorFlow-1: 如何识别数字


推荐阅读
历史技术博文链接汇总
也许可以找到你想要的

版权声明:本文为博主原创文章,未经博主允许不得转载。

tensorflow结果可视化

# View more python learning tutorial on my Youtube and Youku channel!!! # Youtube video tutorial:...
  • heqinglin8
  • heqinglin8
  • 2017年03月04日 14:53
  • 484

tensorflow学习笔记(二十一):tensorflow可视化

tensorflow 可视化tensorflow的可视化是使用summary和tensorbboard合作完成的.基本用法首先明确一点,summary也是op.输出网络结构with tf.Sessio...
  • u012436149
  • u012436149
  • 2016年11月16日 11:30
  • 12124

学习数据结构和算法动态可视化工具

下面主要推荐一个学习基本算法比较好的工具。工具链接
  • hp910315
  • hp910315
  • 2016年03月08日 18:14
  • 1422

学习MySQL的第一步:安装MySQL及数据库可视化工具Navicat

写作初衷❤ 笔者电脑上的MySQL不知为何无法启动,经上网搜索解决办法无果,只能卸载重新安装。 大多数人去MySQL官网下载,不知道要下载哪一个文件,比如有MySQL Enterpris...
  • sinat_28224453
  • sinat_28224453
  • 2017年07月08日 18:53
  • 1161

【Deep Learning】tensorflow实现卷积神经网络(AlexNet)

一、实验要求         1.使用卷积神经网络实现图片分类,数据集为OxFlowers17; 二、实验环境         Anaconda2-4.3.1(Python2.7),tensor...
  • LAW_130625
  • LAW_130625
  • 2017年05月17日 15:59
  • 1369

Tensorflow 可视化 TensorBoard 尝试~

安装Tensorflow的过程就不必说了,安装官网或者google一下,很多资源。 这次实验是在Iris数据集进行的,下载链接 代码如下: import os import cv2 impor...
  • Silver_sail
  • Silver_sail
  • 2016年07月13日 17:15
  • 10977

打算进入可视化前端开发了

经过一段时间的知识储备,选择了这条可视化前端方向,冒着一些经济风险提出转岗,觉得自己还年轻,是该重新上路选择自己的方向。 从业webGIS九年了,一直在做政府行业公安交警的地图开发,围绕着dojo ...
  • doudoudewang
  • doudoudewang
  • 2017年03月28日 16:07
  • 995

caffe 网络结构参数介绍及可视化

caffe/examples/mnist/lenet_solver.prototxt# The train/test net protocol buffer definition net: "exam...
  • lhnows
  • lhnows
  • 2017年06月15日 21:14
  • 270

TensorBoard--TensorFlow可视化

TensorBoard是TensorFlow极为有用的工具,可以用来记录和跟踪学习过程中网络结构节点的变化(Event、Images),展示整个网络结构,对于程序的结构检验、调试和优化有很大的帮助。本...
  • wangjian1204
  • wangjian1204
  • 2016年11月22日 20:40
  • 4469

[TensorFlow]使用Tensorboard实现神经网络可视化

可视化是深度学习神经网络开发、调试、应用中极为重要的手段。Tensorboard是Tensorflow提供的一个可视化工具,本文通过实际代码实验的方式说明使用TensorBoard实现记录变量,实现可...
  • wangyao_bupt
  • wangyao_bupt
  • 2017年04月22日 11:50
  • 3693
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:TensorFlow-6-TensorBoard 可视化学习
举报原因:
原因补充:

(最多只允许输入30个字)