Pytorch中tensorboard的使用

Tensorboard使用

文章目录

安装

pip install tensorboard

使用逻辑

  • 使用writer将代码运行过程中关心的数据保存
  • 运行tensorboard的使用读取保存的数据,并在浏览器中显示

代码使用

导入

from torch.utils.tensorboard import SummaryWriter

创建写对象

writer = SummaryWriter(PATH) # PATH 保存路径

方法

数值的保存
writer.add_scalar(tag, scalar_value, global_step=None, walltime=None)
  • tag:变量的标签
  • scalar_value:保存的值
  • global_step:横坐标的值
图像的保存
add_image(self, tag, img_tensor, global_step=None, walltime=None, dataformats=‘CHW’)

用于添加单张图片

  • img_tensor:图片数据,类型需要是torch.Tensor、numpy.array或者string
  • dataformats:‘CHW’指tensor,‘HWC’指numpy
add_images(tag, img_tensor, global_step=None, walltime=None, dataformats='NCHW')

用于添加多张图片

  • dataformats:输入图像数据的维度形式:NCHW, NHWC, CHW, HWC, HW, WH,默认为[N,3,H,W]

模型保存

add_graph(model, input_to_model=None, verbose=False)
  • model:网络模型
  • input_to_model:一个输入的样本实例
  • verbose:控制是否打印网络结构的开关语句

启动可视化

tensorboard --logdir=./path --port 8123

任何未被占用的端口都可以使用

tensorboard默认30秒刷新一次,并非实时显示(visdom是完全实时的)

如果使用的是vscode,vscode会提示你在编辑器内打开tensorboard,就不用输入命令行了,十分方便

Pytorch中tensorboard的使用

Pytorch中tensorboard的使用

细节

变量归类

命名变量的时候可以使用形如

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

的格式,这样3个loss就会被显示在同一个section

同时显示多个折线图

加入使用了两种学习率去训练同一个网络,想要比较他们训练过程中的loss曲线,只需要将他们的日志文件夹放到同一个目录下,运行:

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

参考

  1. https://zhuanlan.zhihu.com/p/103630393
    sorboard --logdir=./path/to/the/root --port 8123
上一篇:使用opencv实现单目尺寸估计(一)


下一篇:OpenCV颜色提取,轮廓识别