实现以上功能,需要在Pytorch环境下安装TensorboardX工具包,并使用相应的代码,即可在网页页面中查看并分析loss曲线(还有许多其他功能。。。目前仅实践画loss曲线部分)
TensorboardX github链接
pip install tensorboardX
根目录下会有TensorboardX文件夹:
创建一个try.py文件,代码框架如下:
from tensorboardX import SummaryWriter
writer = SummaryWriter()
train_loss=[3.5, 2.0, 2.5, 2.0]
dev_loss=[3.0, 2.8, 2.5, 2.0]
for i in range(len(train_loss)):
writer.add_scalars("loss",{"train":train_loss[i],"dev":dev_loss[i]},i+1)
writer.export_scalars_to_json("./loss.json")
writer.close()
其中,我将详细说明以下writer.add_scalars()函数:
writer.add_scalars()函数:
功能:在一个图表中记录多个标量的变化,常同于对比,如train loss 和 val loss的比较等。
参数:add_scalars(main_tag, tag_scalar_dict, global_step=None, walltime=None)
main_tag(string)为该图的标签;
tag_scalar_dict(dict)为绘制的曲线的数据,其中,key是变量的名称,value是变量的值;
global_step(int)为曲线图的横坐标
walltime(float)为event文件的文件名设置时间,默认为time.time()
以上参数在实际绘制的图像中,所对应的位置如下:
此外,如果只画一条曲线,有add_scalar()函数,还有更多功能如:直方图、多分位数折线图、网络结构拓扑图等,都有对应的函数,具体可参考博客。
python try.py
tensorboard --logdir "./" --host 127.0.0.1
其中"./"为json文件所在目录(注意是目录,不包括文件名,如果该目录下包含多个json文件,会一起转化!)
执行后会显示以下内容,点击链接就可以在浏览器中查看loss图啦!
注意:json文件应当在tensorboardX根目录下,浏览器才能正确显示内容,如果json文件在tensorboardX文件夹外,或者在tensorboardX的子目录下,浏览器都会出现显示不出来、显示错误等问题。