1.Tensorboard可以记录与展示以下数据形式:
- 标量Scalars
- 图片Images
- 音频Audio
- 计算图Graph
- 数据分布Distribution
- 直方图Histograms
- 嵌入向量Embeddings
2.Tensorboard的可视化过程
- 首先肯定是先建立一个graph,你想从这个graph中获取某些数据的信息
- 确定要在graph中的哪些节点放置summary operations以记录信息
使用tf.summary.scalar记录标量
使用tf.summary.histogram记录数据的直方图
使用tf.summary.distribution记录数据的分布图
使用tf.summary.image记录图像数据
….
3 operations并不会去真的执行计算,除非你告诉他们需要去run,或者它被其他的需要run的operation所依赖。而我们上一步创建的这些summary operations其实并不被其他节点依赖,因此,我们需要特地去运行所有的summary节点。但是呢,一份程序下来可能有超多这样的summary 节点,要手动一个一个去启动自然是及其繁琐的,因此我们可以使用tf.summary.merge_all去将所有summary节点合并成一个节点,只要运行这个节点,就能产生所有我们之前设置的summary data。
4 使用tf.summary.FileWriter将运行后输出的数据都保存到本地磁盘中
5 运行整个程序,并在命令行输入运行tensorboard的指令,之后打开web端可查看可视化的结果
import tensorflow as tf
import numpy as np
from tensorflow.examples.tutorials.mnist import input_data
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'
mnist = input_data.read_data_sets("MNIST_data", one_hot=True)
batch_size = 100
n_batch = mnist.train.num_examples // batch_size
#参数概要
def variable_summaries(var):
with tf.name_scope('summary'):
mean = tf.reduce_mean(var)
#scalar 监测并记录下来,之后合并
tf.summary.scalar('mean', mean) #平均值 params1 名字,params2 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) # 直方图
with tf.name_scope