tensorboard的梯度与权重histogram图学习

1.作图

https://www.cnblogs.com/zpc1001/p/13322902.html

    # 每一个epoch,记录各层权重、梯度
    for name, param in net.named_parameters():  # 返回网络的
        writer.add_histogram(name + '_grad', param.grad, epoch)
        writer.add_histogram(name + '_data', param, epoch)

2.理解

https://blog.csdn.net/u010099080/article/details/77426577

首先是DISTRIBUTIONS,可以查一下从上到下共有八条线,有深有浅,分别表示[maximum, 93%, 84%, 69%, 50%, 31%, 16%, 7%, minimum],是分位数

DISTRIBUTIONS是多分位数折线图 的堆叠。

下面HISTOGRAMS 可以说是 频数分布直方图 的堆叠。

横轴表示权重值,纵轴表示训练步数。颜色越深表示时间越早,越浅表示时间越晚(越接近训练结束)。除此之外,HISTOGRAMS 还有个 Histogram mode,有两个选项:OVERLAY 和 OFFSET。选择 OVERLAY 时横轴为权重值,纵轴为频数,每一条折线为训练步数。颜色深浅与上面同理。默认为 OFFSET 模式:

https://blog.csdn.net/qq_33345917/article/details/85008083

更清晰的一个图

 

 x轴为数值,y轴为循环的次数,z轴为个数。

那么针对一条线纵轴y=100上的类似三角形来说,表示在训练到这个epochy的情况下,梯度值大约为150-200之间的范围,z轴为个数,说明梯度都集中在这个范围内。

真实的分布直方图应该是一条直线,符合正态分布。

posted @ 2021-05-27 12:35  lypbendlf  阅读(2896)  评论(0编辑  收藏  举报