tensorboard的可视化对我们应用tensorflow框架调参,或者写论文都有一定帮助。
如有理解不到位的地方,敬请指正。
最近在跑DCGAN的代码,正好借此学习。
参考博客:https://blog.csdn.net/wgj99991111/article/details/84708255
https://blog.csdn.net/jk981811667/article/details/78864215
https://www.jianshu.com/p/db9dcb275fc6
1、Tensorboard简介
TensorBoard目前支持7种可视化,Scalars,Images,Audio,Graphs,Distributions,Histograms和Embeddings。其中可视化的主要功能如下。
(1)Scalars:展示训练过程中的常亮,如准确率、损失值、权重/偏置的变化情况。
(2)Images:展示训练过程中记录的图像。
(3)Audio:展示训练过程中记录的音频。
(4)Graphs:展示模型的数据流图,以及训练在各个设备上消耗的内存和时间。
(5)Distributions:展示训练过程中记录的数据的分部图。
(6)Histograms:展示训练过程中记录的数据的直方图。
(7)Embeddings:展示词向量后的投影分部。
我们关键使用Scalars、Image、Graphs、Distribution、Histograms等
通过 在logs目录下运行 tensorboard --logdirs=logs/ 命令可读取训练时的logs文件,返回一个网址,在本地打开。
如果提示没有tensorboard命令,而tensorboard已经安装成功。可以通过python2 ../tensorboard/tensorboard.py --logdirs=logs/ 具体看python2与python3中tensorboard文件夹内的主函数的位置
如下图: 7个功能在最上方标题栏。
2、Scalars
Scalars 标量。显示固定常数值。
data downloadlinks(数据下载链接),smoothing(图像的曲线平滑程度)以及Horizontal Axis(水平轴)的表示,其中水平轴的表示分为3种(STEP代表迭代次数,RELATIVE代表按照训练集和测试集的相对值,WALL代表按照时间)
这个损失d_loss降的比较小,g_loss稳定在3左右,训练不是很好,GAN真的很难收敛 啊 !
3、Image
展示生成器生成的一些照片示例。
10 表示只显示10张
4、Graphs
GRAPHS面板是对理解神经网络结构最优帮助的一个面板,他直观的展示了数据流图。下图界面中结点之间的连线即为数据流,连线越粗,说明两个结点之间流动的张量(tensor)越多。
可参考https://www.jianshu.com/p/db9dcb275fc6,理解的很透彻。
5、Distribution
distributions面板和histograms面板类似,只不过是用平面来表示,且他们的数据源是相同的。他们都是用来显示张量的。直方图使用来统计频率信息的,distributions是在平面上表示一个张量每个值出现次数(颜色深浅)。这里可能看histograms比较直观。
上图显示的是输入生成器的随机噪声Z,其是100维的张量。横轴为训练的次数,纵坐标为取值范围,用不同的颜色表示取某个区域值的频次,颜色越深表示出现的频次越多。从上图可以看出,该噪声值在1.78e*-16附近颜色最深,也就是说在这个附近取值频次最高。
上图分别是判别器对真实数据的loss值d 和判别器对生成数据的loss值d_,返回的应该是一个[batch_size, 1]维的张量,所以用distributions面板和histograms均可以表示,先来看distributions。左图横轴迭代次数,纵轴表示取值范围,颜色表示一次迭代取样时的张量中的频数,可以看出来,训练不是很稳定,情况好的时候大部分靠近1,也有大部分接近于0的情况。右图意思一样。
6、 histograms
histograms是distributions三维展示,同样对于张量Tensor来说,统计一个张量中每个数出现的次数,在三维中也就是高度。如下图。
直方图有两种展现形式,overlay和offset。
OFFSET下:
该图的横坐标表示d_loss的范围,右侧的总坐标表示训练测次数,对应的图形中曲线的颜色由后至前逐步变浅,表示训练的次数逐步增加。图形中包含很多个曲线的切片,每个切片表示一次数据采集过程中的情况。从图中可以看出判别器对真实数据的loss张量内每个loss出现的频次。
OVERLAY:
上图黑线表示,在迭代52606次后,在[batch_size,1]的张量中,loss值为0.0502时出现了6.26次。