PyTorch基础:数据处理(数据可视化)

在训练神经网络时,如果想了解训练的具体情况,可以在终端中打印出各种训练信息,但这种方法不够直观,难以从整体角度判断模型的收敛情况,因此产生了各种数据可视化工具,可以在网络训练时更好地查看训练过程中的各个损失变化情况,监督训练过程,并为进一步的参数优化与训练优化提供方向
在PyTorch中,常用的可视化工具有TensorBoardX和Visdom
TensorBoard简介:
TensorBoardX是专为PyTorch开发的一套数据可视化工具,功能与TensorBoard相当,支持曲线、图片、文本和计算图等不同形式的可视化,而且使用简单。下面以实现损失曲线的可视化为例,介绍TensorBoardX的使用方法
在训练脚本中,添加如下几句指令,即可创建记录对象与数据的添加

from tensorboardX import SummaryWriter
#创建writer对象
writer = SummaryWriter('logs/tmp')
#添加曲线,并且可以使用‘/’进行多级标题的指定
writer.add_scalar('loss/total_loss', loss.data[0], total_iter)
writer.add_scalar('loss/rpn_loss', rpn_loss.data[0], total_iter)

添加TensorBoardX指令后,则将在logs/tmp文件夹下生成events开头的记录文件,然后使用TensorBoard在终端开启Web服务

tensorboard --logdir=logs/tmp/
TensorBoard 1.9.0 at http://pytorch:6006 (Press CTRL+C to quit)

在游览器段输入上述指令下方的网址http://pytorch:6006,即可看到数据的可视化效果

Visdom简介
Visdom由Facebook团队开发,是一个非常灵活的可视化工具,可用于多种数据的创建、组织和共享,支持Numpy、Torch与PyTorch数据,目的是促进远程数据可视化,支持科学实验
使用如下指令可以开启visdom服务,该服务基于Web,并默认使用8097端口

python -m visdom.server

下面实现一个文本、曲线及图片的可视化示例,更多丰富功能,可以查看Visdom的GitHub主页

import torch
import visdom

#创建visdom客户端,使用默认端口8097,环境为first,环境的作用是对可视化的空间进行分区
vis = visdom.Visdom(env='first')
#vis对象有text()、line()和image()等函数,其中的win参数代表了显示的窗格(pane)的名字
vis.text('first visdom', win='text1')
#在此使用append为真来进行增加text,否则会覆盖之前的text
vis.text('hello PyTorch', win='text1', append=True)

#绘制y=-i^2+20*i+1的曲线,opt可以进行标题、坐标轴标签等的配置
for i in range(20):
    vis.line(X=torch.FloatTensor([i]), Y=torch.FloatTensor([-i**2+20*i+1]), opts={'title': 'y=-x^2+20x+1'}, win='loss', update='append')

#可视化一张随机图片
vis.image(torch.randn(3, 256, 256), win='random_image')

打开游览器,输入http://localhost:8097,即可看到可视化结果。可以看到在first的环境下,有3个窗格,分别为代码中添加的可视化数据
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丁天牛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值