tensorboard - juedaiyuer/researchNote GitHub Wiki

可视化学习 TensorBoard

1. 实际测试

mnist_with_summaries.py: Tensorboard训练过程可视化

首先,编译运行代码

运行tensorboard,logdir取决于mnist_with_summaries.py代码中的--log_dir

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

运行会有这样的提示

Starting TensorBoard 39 on port 6006
(You can navigate to http://127.0.1.1:6006)

dl/mnist/mnist_with_summaries.png

通过使用--port参数可以改变启动服务的端口

2. 简介

TensorBoard 涉及到的运算,通常是在训练庞大的深度神经网络中出现的复杂而又难以理解的运算

为了更方便TensorFlow程序的理解、调试与优化,用TensorBoard来展现你的TensorFlow图像,绘制图像生成的定量指标图以及附加数据

TensorBoard和Tensorflow程序跑在不同的进程中

3. 数据序列化

TensorBoard通过读取TensorFlow的事件文件来运行。TensorFlow的事件文件包括了你会在TensorFlow运行中涉及到的主要数据。下面是TensorBoard中汇总数据(Summary data)的大体生命周期

首先,创建你想汇总数据的TensorFlow图,然后再选择你想在哪个节点进行汇总(summary)操作

Tensorflow的API中提供了一种叫做Summary的操作,用于将Tensorflow计算过程的相关数据序列化成字符串Tensor。例如标量数据的图表scalar_summary或者梯度权重的分布histogram_summary

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

-tensorflow Summary

4. 图表可视化

5. 名称域和节点

import tensorflow as tf
with tf.name_scope('hidden') as scope:
    a = tf.constant(5, name='alpha')
    W = tf.Variable(tf.random_uniform([1, 2], -1.0, 1.0), name='weights')
    b = tf.Variable(tf.zeros([1]), name='biases')

结果是得到了下面三个操作名:

  • hidden/alpha
  • hidden/weights
  • hidden/biases

通过名称域把节点分组来得到可读性高的图表很关键的。如果你在构建一个模型,名称域就可以用来控制可视化

结果。你的名称域越好,可视性就越好。你的名称域越好,可视性就越好。

5. 查看可视化结果

tensorboard --logdir=yourlog

source