Pytorch中Tensorboard使用
1. 安装
pip install tensorboard
2. 工作流程
-
在代码中使用
writer
将需要记录的内容写入文件 -
在命令行通过
tensorboard --logdir path
来访问并显示文件内容
3. 相关类与函数
3.1 SummaryWriter类
功能:创建一个写入器,使得可以向文件中写入events
或者summaries
torch.utils.tensorboard.SummaryWriter(log_dir=None, # event file 存放的目录,默认为当前目录下的runs文件夹
comment='', # 不指定log_dir时,runs文件夹子目录的后缀
purge_step=None,
max_queue=10,
flush_secs=120,
filename_suffix='') # event file文件的后缀
3.2 add_scalar函数
功能:向event
文件中写入标量(一幅图中只能有一个图像)
add_scalar(tag, # 该图像的标识
scalar_value, # 要写入的标量值
global_step=None, # 可以理解成该标量对应的横轴的值
walltime=None)
3.3 add_scalars函数
功能:add_scalar
函数的扩展,即可以在一幅图中添加多个图像
add_scalars(main_tag, # 该图像的标识
tag_scalar_dict, # 用字典的形式表示多个曲线。key是标量的标识,value是标量的值
global_step=None, # 可以理解成标量对应的横轴的值
walltime=None)
4. 具体实现
代码
from torch.utils.tensorboard import SummaryWriter
writer = SummaryWriter("./logs/test1")
# 画一幅图
for x in range(100):
writer.add_scalar("y=x*x", x*x, x)
writer = SummaryWriter("./logs/test2")
# 在同一个section中画多幅图
for x in range(100):
writer.add_scalar("function/y=x*x", x*x, x)
writer.add_scalar("function/y=x+10", x+10, x)
writer = SummaryWriter("./logs/test3")
# 在同一个图中画多条曲线
for x in range(100):
writer.add_scalars("Functions", {"y=x": x, "y=x+5": x+5}, x)
writer.add_scalars("Functions", {"y=x+10": x+10}, x)
命令行
tensorboard --logdir logs
文件目录结构
![](https://img2020.cnblogs.com/blog/2226924/202104/2226924-20210416111921714-165606125.jpg)
Tensorboard画图结果
![](https://img2020.cnblogs.com/blog/2226924/202104/2226924-20210416111932794-356893089.jpg)