Pytorch中Tensorboard使用

1. 安装

pip install tensorboard

2. 工作流程

  1. 在代码中使用writer将需要记录的内容写入文件

  2. 在命令行通过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

文件目录结构

Tensorboard画图结果

posted @ 2021-04-16 11:23  火锅先生  阅读(703)  评论(0编辑  收藏  举报