绘制loss/reward曲线的方法——基于TenserboardX

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下查看
此外在SCALARS界面中,可以选择参数对于结果进行平滑。
平滑后,会有虚线显示原始数据,实线显示平滑后的数据。
平滑

4. 其他问题

TensorBoardX同一组数据图像显示不同问题:
不同的浏览器对显示会有影响,就比如在Windows自带浏览器中是可以显示TIME SERIES界面数据的。
在这里插入图片描述

此外,绘图需要一定的时间,如若看到图像显示和之前打开的不一样,可能是还未加载完毕,刷新一下。
下图是同一组数据两次不同的显示,很显然第一次的时候有一组数据没被画上。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值