可视化工具
Using TensorBoard to visualize training progress and other activities
Pytorch中,
TensorboardX
lanpa大佬(Github用户名)就开发了tensorboardX,一个完全支持PyTorch的tensorboard工具包
from tensorboard import SummaryWriter
visdom是FaceBook开发的一款可视化工具,其实质是一款在网页端的web服务器,对Pytorch的支持较好
PyTorch官方对tensorboard的支持是在PyTorch 1.1.0版本中实现的 # PyTorch TensorBoard support
from torch.utils.tensorboard import SummaryWriter
# Image display matplotlib
import matplotlib.pyplot as plt
1.资源队列与任务类型说明
资源队列 资源队列ID 镜像ID 镜像地址
任务名称 任务ID 任务类型 任务状态 任务优先级 时间(创建时间-更新时间-结束时间-运行时间) 操作(终止 删除)
任务进展状态:
排队中 运行中 成功 失败 已终止 异常
平台创建训练任务
说明: Google的tensorflow中的 tensorboard 是一个用于服务神经网络训练过程可视化的网络服务器,是以event的形式保存
writer.add_scalar('myscalar', value, iteration)来记录(log)一个标量值。
需要注意的是,如果给程序输入一个PyTorch tensor是不可以的,
如果x是一个torch scalar tensor,要记得用x.item()提取标量值
add_scalar(tag, scalar_value, global_step=None, walltime=None)
add_scalar 方法来记录训练过程的 loss、accuracy、learning rate等数值的变化,直观地监控训练过程
add_histogram(tag, values, global_step=None, bins='tensorflow', walltime=None, max_bins=None)
add_graph(model, input_to_model=None, verbose=False, **kwargs)
可视化一个神经网络
1.train中增加代码
# 在main函数的args参数变量新增logdir作为的输出日志的路径
parser.add_argument('--logdir', type=str, default='runs')
# 加入SummaryWriter对象
from torch.utils.tensorboard import SummaryWriter
sw = SummaryWriter(log_dir=args.logdir)
def train(args, model, device, train_loader, optimizer, epoch):
# 对于每一个batch,在loss计算之后写进日志
count=1
# basic training loop
optimizer.zero_grad()
inputs, target = data
outputs = net(inputs)
# 损失函数-NLLLoss 需要对 进行 log_softmax 处理,即将 转换成概率分布的形式,并且取对数,底数为 e
loss = F.nll_loss(output, target)
loss.backward()
optimizer.step()
#
sw.add_scalar('Loss', loss.item(), global_step=count)
#
count+=1
2.修改 config.json
新建任务配置 json,并保存为文本文件,utf-8 编码
其格式如
{
"type":"{任务类型}",
"name":"{任务名}",
}
3.客户端提交任务
./client job submit -c config.json
参考
https://pytorch.org/tutorials/beginner/introyt/tensorboardyt_tutorial.html