恒源云——pytorch——tensorboard

恒源云——pytorch——tensorboard

前言

写作本文的目的是整合自己在恒源云平台上使用tensorboard的一些经验,避免重复性学习

准备

Tensorboard的工作流程简单来说是

  • 将代码运行过程中的,需要的数据保存在一个文件夹中:
  • 再读取这个文件夹中的数据,用tensorboard显示出来:
import torch
import torchvision
from torch.utils.tensorboard import SummaryWriter
from torchvision import datasets, transforms
# 设置输出文件目录
writer = SummaryWriter('/tf_logs')
transform = transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.5,), (0.5,))])
trainset = datasets.MNIST('mnist_train', train=True, download=True, transform=transform)
trainloader = torch.utils.data.DataLoader(trainset, batch_size=64, shuffle=True)
model = torchvision.models.resnet50(False)
# Have ResNet model take in grayscale rather than RGB
model.conv1 = torch.nn.Conv2d(1, 64, kernel_size=7, stride=2, padding=3, bias=False)
images, labels = next(iter(trainloader))

grid = torchvision.utils.make_grid(images)
writer.add_image('images', grid, 0)
# 写入图像数据 
writer.add_graph(model, images)
# 写入模型
writer.close()

如上加载了MNIST数据集和resnet50模型。下面描述下相关代码:

from torch.utils.tensorboard import SummaryWriter

SummaryWriter的作用是将需要储存的数据存储进目标文件夹

writer = SummaryWriter('/tf_logs')

将其实例化,传入的参数为目标存储文件夹的路径,在恒源云中,官方配置的tensorboard默认路径即为==’/tf_logs’==

writer.add_image('images', grid, 0)
# 将batch图像添加到summary中
writer.add_graph(model, images)
# 写入模型

此时,在

image-20211228141436841

界面点击tensorboard,可以看到如下界面:

恒源云——pytorch——tensorboard_第1张图片

IMAGES是输入的batchsize=64的批次数据,GRAPHS是模型的示意图:

恒源云——pytorch——tensorboard_第2张图片

点击模块可以查看详细信息。

Loss与Accuary

这两个指标参照链接给出的方式插入即可

add_scalar(tag, scalar_value, global_step=None, walltime=None)

tag (string): 数据名称,不同名称的数据使用不同曲线展示

scalar_value (float): 数字常量值

global_step (int, optional): 训练的 step

tag (string): 数据名称,不同名称的数据使用不同曲线展示

scalar_value (float): 数字常量值

global_step (int, optional): 训练的 step

例如:

writer.add_scalar('TrainLoss', Loss, global_step=epoch)

即可得到Loss随着epoch变化的折线图。

补充

除了使用恒源云默认路径’/tf_logs’外,还可以通过以下代码使用自己定义的路径:

  • 定义自己的路径:
writer = SummaryWriter('/hy-tmp/tf_logs/exp1')
  • 关闭系统执行的tensorboard:
在终端中执行以下命令
$ ps -ef | grep tensorboard | grep -v grep | awk '{print $2}' | xargs kill
  • 启动新的tensorboard

    tensorboard --logdir /hy-tmp/tf_logs/exp1
    

引用

https://zhuanlan.zhihu.com/p/79113234

https://zhuanlan.zhihu.com/p/112492054

链接

恒源云

你可能感兴趣的:(云平台,pytorch,pytorch,深度学习,神经网络,可视化)