Tensorflow可视化工具 Tensorboard

参考博客:https://blog.csdn.net/sinat_33761963/article/details/62433234,写得很详细,推荐阅读~

一、Tensorboard介绍

1.1 Tensorboard的数据形式

利用Tensorboard可以记录和展示以下数据形式:

  • 标量Scalars
  • 图片Images
  • 音频Audio
  • 模型图Graph
  • 数据分布Distribution
  • 直方图Histograms
  • 嵌入向量Embeddings

1.2 Tensorboard的可视化过程

(1)首先要建立一个模型图Graph,然后可视化你想从这个Graph中获取的某些数据的信息。

(2)确定要在graph中的哪些节点放置summary operations以记录信息:

  • 使用tf.summary.scalar记录标量
  • 使用tf.summary.histogram记录数据的直方图
  • 使用tf.summary.distribution记录数据的分布图
  • 使用tf.summary.image记录图像数据

(3)在节点上放置了summary operations之后并不会直接运行,需要我们手动去启动。因此我们使用tf.summary.merge_all将所有的summary节点合并成一个节点,并通过运行这个节点启动所有的operations。

(4)使用tf.summary.FileWriter将运行后输出的数据都保存到本地磁盘中

(5)运行模型程序后,再在命令行中输入运行tensorboard的指令,之后就可以打开web端查看可视化的结果了。

 

二、Tensorboard使用案例

此处我们使用最基础的识别手写字体(Mnist)作为我们的案例

2.1 准备工作

首先要导入需要用到的包,定义超参数,并加载mnist数据集。

2.2 创建占位符,保存输入图片数据

创建输入数据的占位符,其中包括特征x和数据标签y_

为了可视化我们输入的图片,我们使用tf.summary.image来保存我们的图片信息,语句如下:

tf.summary.image('input', image_shaped_input, 10),

其中传入的第一个参数是命名,第二个是需要可视化的图片数据,第三个是最多能够展示的张数。

2.3 初始化参数,并且汇总到summary

例:tf.summary.scalar('mean', mean)

tf.summary.histogram('histogram', var)

2.4 构建神经网络层

用直方图记录其中的信息:tf.summary.histogram('linear', preactivate)

2.5 定义损失函数

定义损失函数为cross_entropy,并且进行可视化:tf.summary.scalar('loss', cross_entropy)

2.6 训练并计算准确率

可以可视化训练的结果:tf.summary.scalar('accuracy', accuracy)

2.7 合并summary operation,初始化变量

将所有的summaries合并,并将它们写到之前定义的log_dir路径

# summaries合并

merged = tf.summary.merge_all()

# 写到指定的磁盘路径中

train_writer = tf.summary.FileWriter(log_dir + '/train', sess.graph)

test_writer = tf.summary.FileWriter(log_dir + '/test')

# 运行初始化所有变量

tf.global_variables_initializer().run()

2.8 训练模型,并写入summary

每训练一定的steps就进行一次merge,然后将summary信息写入到日志中。

summary, acc = sess.run([merged, accuracy], feed_dict=feed_dict(False))
test_writer.add_summary(summary, i)

2.9 执行程序,Tensorboard生成可视化

(1)运行整个程序,程序中定义的summary node就会将信息保存到日志文件中。

(2)运行以下代码可视化:tensorboard --logdir=

 

 

 

你可能感兴趣的:(Tensorflow可视化工具 Tensorboard)