TensorFlow-6-TensorBoard 可视化学习
2017-04-26 10:42
901 查看
学习资料:
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 如何变化时,目标函数如何变化时,就可以通过向节点附加
2. tf.summary.histogram
当你想看 activations, gradients 或者 weights 的分布时,可以用
如下图,显示了每一步的分布,越靠前面就是越新的步数的结果。
3. tf.summary.merge_all
在 TensorFlow 中,所有的操作只有当你执行,或者一个操作依赖于它的输出时才会运行。为了生成 summaries,我们需要运行所有 summary nodes,所以就用
4. tf.summary.FileWriter
最后,为了将 summary data 写入磁盘,需要将 Summary protobuf 对象传递给
那么上面的图是怎么产生的呢?
完整代码有点长,请前往链接:
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/tutorials/mnist/mnist_with_summaries.py
如果是 mac 的话,可以在终端运行上述代码:
然后就可以看到打印过程:
注意代码里将 log dir 定义为下面这个地址:
所以在打开 tensorboard 时,输入相应的位置:
输入上述命令后,会打印一个 IP 地址,在浏览器打开
这样,就可以看到 bar 上的几个板块了:
除上面几个外,还可以在 graphs 里可以看到 TensorFlow model。
更详细的可以查看:
https://github.com/tensorflow/tensorflow/tree/master/tensorflow/tensorboard
再聊细一点:
关于 scalars 的生成
代码中有这样几行:
在这里对 wights 和 bias 作用了
而
执行后,就可以看到下图:
TensorFlow 系
TensorFlow-5: 用 tf.contrib.learn 来构建输入函数
TensorFlow-4: tf.contrib.learn 快速入门
TensorFlow-3: 用 feed-forward neural network 识别数字
TensorFlow-2: 用 CNN 识别数字
TensorFlow-1: 如何识别数字
推荐阅读
历史技术博文链接汇总
也许可以找到你想要的
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学习与应用(五)——TensorBoard结构与可视化
- 学习TensorFlow,TensorBoard可视化网络结构和参数
- Tensorboard学习——mnist_with_summaries.py ---- TensorFlow可视化
- 学习TensorFlow,TensorBoard可视化网络结构和参数
- Tensorflow学习:Tensorboard可视化(二)
- TensorFlow学习--TensorBoard神经网络可视化
- Tensorflow学习:Tensorboard可视化
- 【tensorflow学习】使用tensorboard实现数据可视化
- Tensorflow学习笔记:基础篇(7)——Mnist手写集改进版(Tensorboard可视化)
- Tensorflow学习教程------tensorboard网络运行和可视化
- 深度学习框架TensorFlow学习与应用(五)——TensorBoard结构与可视化
- TensorFlow学习笔记(十二)TensorFLow tensorBoard 总结
- 87、使用TensorBoard进行可视化学习
- TensorFlow教程 4 Tensorboard 可视化好帮手
- TensorBoard:可视化学习
- TensorFlow高级API(tf.contrib.learn)及可视化工具TensorBoard的使用
- TensorFlow-7-TensorBoard Embedding可视化
- Tensorflow搭建神经网络及使用Tensorboard进行可视化
- TensorFlow学习笔记(6):TensorBoard之Embeddings
- 【Tensorflow】TensorBoard可视化网络结构和参数Tensorboard windows显示空白