1.简介
在使用 Pytorch 框架的时候,发现其并没有内置的比较完善并且简单易上手的可视化显示工具。而 TensorFlow 框架中有一个简单好用的 Tensorboard 可视化工具库,因此,有人对 Tensorboard 进行了封装后生成 TensorboardX ,就有了这个在 Pytorch 框架下简单易上手的可视化工具库。
2.安装
需要同时安装上Tensorboard 。
pip install tensorboard
pip install tensorboardX
3.使用
3.1 初始化
调用库并创建SummaryWriter
from tensorboardX import SummaryWriter
writer = SummaryWriter()
注意此处SummaryWriter后面可以加参数也可以不加参数,不加参数的情况下,会在文件同级目录下生成runs文件夹,按照对应的日期时间存放相应的文件。
当然也可以加参数,让它生成到指定的路径下。
3.2 添加数据
在建立好writer这个实例后,我们就可以利用它来存储数据,常用的函数为writer.add_scalar
,它的格式是:
writer.add_scalar(tag, scalar_value, global_step=None, walltime=None)
tag : 图例与数据名称;
scalar_value : 存储的数据,数据纵坐标;
global_step : 训练次数,数据横坐标;
walltime:记录发生的时间,可以不用。
举个例子,记录critic_eval的loss曲线,注意scalar_value是数字类型,需要tensor.item()取出相应的数值:
writer.add_scalar("loss/td_error",td_error.item(),self.pointer)
3.3 存储与查看
在所有数据存储完成后,writer.close()
关闭对应的writer实例。
随后,在同级目录下输入(注意如果前方初始化writer时自定义了保存路径,则此处的runs也需要进行更改):
tensorboard --logdir runs
会出现以下提示信息:
打开对应的网址:http://localhost:6006
,(可以在命令栏中CTRL+点击
直接进入该网站),在对应的SCALARS菜单栏下就可查看生成的loss曲线了。
此外在SCALARS界面中,可以选择参数对于结果进行平滑。
平滑后,会有虚线显示原始数据,实线显示平滑后的数据。
4. 其他问题
TensorBoardX同一组数据图像显示不同问题:
不同的浏览器对显示会有影响,就比如在Windows自带浏览器中是可以显示TIME SERIES界面数据的。
此外,绘图需要一定的时间,如若看到图像显示和之前打开的不一样,可能是还未加载完毕,刷新一下。
下图是同一组数据两次不同的显示,很显然第一次的时候有一组数据没被画上。