tensorboard可视化数据

tensorboard可以将训练中想保存的变量、图、神经网络结构等,以某种文件形式保存到指定文件夹,然后可以通过tensorboard的本地服务可视化的把数据显示出来。

导入库

  • 一般使用tensorboard下的SummaryWriter进行数据存储
    1. from torch.utils.tensorboard import SummaryWriter
    2. 或者是:
    3. from tensorboardX import SummaryWriter

    基本使用

    1.保存数值

    1. # 首先要实例化SummaryWriter对象,传入数据要保存的路径
    2. writer = SummaryWriter('./logs')
    3. writer.add_scalar(tag, scalar_value, global_step=None, walltime=None)
    这里的tag指定可视化时这个变量的名字,scalar_value是你要存的值,global_step可以理解为x轴坐标。

举个例子:

  1. writer = SummaryWriter('./logs')
  2. for i in range(100):
  3. writer.add_scalar('y=2x', 2i, i)
  4. writer.close()

这样就会生成一个y=2x的图像,保存在'logs'目录下

2.保存图片

  • add_image保存单个图片
  • 保存图片时,对图片向量的通道数顺序有要求,默认是CHW,如果自己的向量顺序不是CHW,可以通过dataformats参数指定。

    • C代表channel,通道
    • H代表height,图片的高
    • W代表width,图片的宽
      1. writer.add_image(tag, img_tensor, global_step=None, walltime=None, dataformats='CHW')
      通常我们需要保存一个batch的图片,也就是一次保存一批图片,使用add_images
      1. writer.add_images(tag, imgs_tensor, global_step=None, walltime=None,
      2. dataformats='CHW')

      可视化展现

      在命令行运行:
      1. tensorboard --logdir=path --port 8123
  • port可以不指定,默认6006端口

  • logdir后面跟相对路径即可,路径可以不用' '括住
  • 运行成功后,会如下图所示,显示本地连接,在浏览器打开即可看到图像

image.png

Colab上使用tensorboard

  • 执行两个魔法命令即可,会直接在juypter内显示tensorboard
    1. %load_ext tensorboard #使用tensorboard 扩展
    2. %tensorboard --logdir logs #定位tensorboard读取的文件目录