pytorch tensorboard

发布时间 2023-11-16 09:27:20作者: dctwan

转载:https://zhuanlan.zhihu.com/p/103630393

安装

pip install tensorboard

使用逻辑

  • 将代码运行过程中的,某些你关心的数据保存在一个文件夹中
    这一步由代码中的writer完成
  • 再读取这个文件夹中的数据,用浏览器显示出来
    这一步通过在命令行运行tensorboard完成。

使用代码

from torch.utils.tensorboard import SummaryWriter
writer = SummaryWriter('./path/to/log')
# 针对数值
writer.add_scalar(tag, scalar_value, global_step=None, walltime=None)

这里的tag指定可视化时这个变量的名字,scalar_value是你要存的值,global_step可以理解为x轴坐标。

简单例子

for epoch in range(100)
    mAP = eval(model)
    writer.add_scalar('mAP', mAP, epoch)

除了数值还能展示图像

命令行启动tensorboard

tensorboard --logdir=./path/to/the/folder --port 6006

然后打开浏览器,访问地址http://localhost:6006/即可。这里的6006只是随便一个例子,用其他的未被占用端口也没有任何问题,注意命令行的端口与浏览器访问的地址同步。
另一点要注意的是tensorboard并不是实时显示(visdom是完全实时的),而是默认30秒刷新一次。

其他使用

1.变量归类
命名变量的时候可以使用形如

writer.add_scalar('loss/loss1', loss1, epoch)
writer.add_scalar('loss/loss2', loss2, epoch)
writer.add_scalar('loss/loss3', loss3, epoch)

这样3个loss就会被显示在同一个section。

2.同时显示多个折线图
假如使用了两种学习率去训练同一个网络,想要比较它们训练过程中的loss曲线,只需要将两个日志文件夹放到同一目录下,并在命令行运行

tensorboard --logdir=./path/to/the/root --port 6006