代码样例 https://pytorch.org/docs/stable/tensorboard.html
将以下代码运行
from torch.utils.tensorboard import SummaryWriter
import numpy as np
# 代码样例来自https://pytorch.org/docs/stable/tensorboard.html
writer = SummaryWriter(log_dir="add_histogram_demo_data/log")
for i in range(10):
x = np.random.random(1000)
writer.add_histogram('distribution centers', x + i, i)
writer.close()
并在add_histogram_demo_data目录下运行,打开tensorboard
tensorboard --logdir="./log"
能看到如图结果,所有数据的分布都在图中,那么如何理解这个直方图呢?
我们看向第一个数据块,它代表writer.add_histogram('distribution centers', x + i, 0)
的调用,此时global_step=0。相同global_step的数据会被放置在同一个层。
上图指向的块高度为336,横坐标为0.167,纵坐标为0,这代表第0层数据在0.167附近的点有336个。
我们把这一层的另外两个点分布截图,高度分别为324和340。336+324+340=1000,这就与x = np.random.random(1000)
对应上了。直方图显示的就是这1000个点的数值分布情况。
当然,数据肯定不是都刚好等于0.167,0.500和0.833,他们只是刚好坐落在这些附近而已,debug看具体数据可知。