天天看点

以DCGAN为例,对Tensorboard的可视化的理解

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个功能在最上方标题栏。

以DCGAN为例,对Tensorboard的可视化的理解

2、Scalars

Scalars 标量。显示固定常数值。

data downloadlinks(数据下载链接),smoothing(图像的曲线平滑程度)以及Horizontal Axis(水平轴)的表示,其中水平轴的表示分为3种(STEP代表迭代次数,RELATIVE代表按照训练集和测试集的相对值,WALL代表按照时间)

以DCGAN为例,对Tensorboard的可视化的理解
以DCGAN为例,对Tensorboard的可视化的理解

这个损失d_loss降的比较小,g_loss稳定在3左右,训练不是很好,GAN真的很难收敛 啊 !

3、Image

展示生成器生成的一些照片示例。

以DCGAN为例,对Tensorboard的可视化的理解

 10 表示只显示10张

4、Graphs

GRAPHS面板是对理解神经网络结构最优帮助的一个面板,他直观的展示了数据流图。下图界面中结点之间的连线即为数据流,连线越粗,说明两个结点之间流动的张量(tensor)越多。

可参考https://www.jianshu.com/p/db9dcb275fc6,理解的很透彻。

5、Distribution

distributions面板和histograms面板类似,只不过是用平面来表示,且他们的数据源是相同的。他们都是用来显示张量的。直方图使用来统计频率信息的,distributions是在平面上表示一个张量每个值出现次数(颜色深浅)。这里可能看histograms比较直观。

以DCGAN为例,对Tensorboard的可视化的理解

上图显示的是输入生成器的随机噪声Z,其是100维的张量。横轴为训练的次数,纵坐标为取值范围,用不同的颜色表示取某个区域值的频次,颜色越深表示出现的频次越多。从上图可以看出,该噪声值在1.78e*-16附近颜色最深,也就是说在这个附近取值频次最高。

以DCGAN为例,对Tensorboard的可视化的理解
以DCGAN为例,对Tensorboard的可视化的理解

上图分别是判别器对真实数据的loss值d 和判别器对生成数据的loss值d_,返回的应该是一个[batch_size, 1]维的张量,所以用distributions面板和histograms均可以表示,先来看distributions。左图横轴迭代次数,纵轴表示取值范围,颜色表示一次迭代取样时的张量中的频数,可以看出来,训练不是很稳定,情况好的时候大部分靠近1,也有大部分接近于0的情况。右图意思一样。

6、 histograms

 histograms是distributions三维展示,同样对于张量Tensor来说,统计一个张量中每个数出现的次数,在三维中也就是高度。如下图。

直方图有两种展现形式,overlay和offset。

OFFSET下:

以DCGAN为例,对Tensorboard的可视化的理解

该图的横坐标表示d_loss的范围,右侧的总坐标表示训练测次数,对应的图形中曲线的颜色由后至前逐步变浅,表示训练的次数逐步增加。图形中包含很多个曲线的切片,每个切片表示一次数据采集过程中的情况。从图中可以看出判别器对真实数据的loss张量内每个loss出现的频次。

OVERLAY:

以DCGAN为例,对Tensorboard的可视化的理解

上图黑线表示,在迭代52606次后,在[batch_size,1]的张量中,loss值为0.0502时出现了6.26次。

继续阅读