通过Tensorboard可视化操作
①Tensorboard通过summary对数据进行汇总
tf.summary.FileWriter——用于将汇总数据写入磁盘
tf.summary.scalar——对标量数据汇总和记录
tf.summary.histogram——记录数据的直方图
tf.summary.image——将图像写入summary
tf.summary.merge——对各类的汇总进行一次合并
tf.summary.merge_all——合并默认图像中的所有汇总
②from tensorflow.keras.callbacks import Tensorboard
参数解析
1、log_dir: 用来保存Tensorboard的日志文件等内容的位置,默认保存在当前文件夹下。
2、histogram_freq: 对于模型中各个层计算**值和模型权重直方图的频率。默认为0
3、write_graph: 是否在 TensorBoard 中可视化图像。默认True(显现graph)
4、write_grads: 是否在 TensorBoard 中可视化梯度值直方图。默认为False
5、batch_size: 用以直方图计算的传入神经元网络输入批的大小。默认为32
6、write_images: 是否在 TensorBoard中将模型权重以图片可视化。默认为False
7、update_freq: 常用的三个值为’batch’ 、 ‘epoch’ 或 整数。当使用 ‘batch’ 时,在每个 batch 之后将损失和评估值写入到 TensorBoard 中。 ‘epoch’ 类似。如果使用整数,会在每一定个样本之后将损失和评估值写入到 TensorBoard 中。默认为’epoch‘
SCALARS
tensorboard的标量仪表盘,统计tensorflow中的标量随着迭代轮数的变化情况(如:学习率、loss、auc)。
Images
图像仪表盘,显式通过tf.summary.image()函数来保存png图片文件,将png图片放到summary中,写入日志文件。tensorboard读取日志文件,在IMAGES栏目下可以展示。
我主要是自然语言处理,各部分就没怎么显现,主要用于图像显现,音频啥的~
GRAPH
用来显示模型的网络架构、参数等信息
DISTRIBUTIONS
Distributions图和Histogram图显示的数据源是相同的,只是用不同的方式对相同的内容进行展示。
各轴坐标含义:
横轴:训练次数
纵轴:权重值的分布范围
颜色变化:颜色越深代表该权重值出现的频次越多
HISTOGRAM
直方图含义
频数分布的一种图形表示,由一些相邻的长方形组成,每个长方形的底宽等于组距,面积与组的频数成比例。也就是说,直方图是表示频次分布情况的一种图像,在tensorboard中,用直方图显示张量,主要就是显示张量中每个值的出现频次。
有两种显示模式
OVERLAY
各轴含义如下:
横轴:权重值的分布范围
纵轴:某个权重值出现的频次
曲线:各次训练结果的累加显示
曲线上的数值:权重值-1.41在训练的第195次出现频次为69.5次
OFFSET模式
各轴坐标含义:
横轴:权重值的分布范围
纵轴:训练次数
颜色变化:颜色由后至前逐步变浅,表示训练次数逐步增加
每个切片:每个切片表示一次数据采集过程
曲线上的数值:如图中-0.0295,出现629次
PROJECTOR
这个对于做自然语言处理任务的小伙伴就十分友好啦,可视化特征空间~,比如下图就是我用skip-gram模型训练的向量的空间,可以上传标签中文数据,用txt文件编写按字典顺序的标签,保存后更改文件类型为tsv,点击load上传就可。
load 上传
几种不同的降维方式~
显示多次训练的结果
常规步骤打开tensorboard时,在面板的左侧就会显示不同的训练结果文件,如果要打开,则勾选相应的文件即可。