pytorch使用tensorboardX进行loss可视化实例


Posted in Python onFebruary 24, 2020

最近pytorch出了visdom,也没有怎么去研究它,主要是觉得tensorboardX已经够用,而且用起来也十分的简单

pip install tensorboardX

然后在代码里导入

from tensorboardX import SummaryWriter

然后声明一下自己将loss写到哪个路径下面

writer = SummaryWriter('./log')

然后就可以愉快的写loss到你得这个writer了

niter = epoch * len(train_loader) + i
writer.add_scalars(args.result_path + 'Train_val_loss', {args.result_path+'train_loss': loss.data.item()}, niter)

其中,add_scalars是将不同得变量添加到同一个图下,图的名称是add_scalars得第一个变量

然后为这个图中不同得曲线添加不同得标题,上面这一行代码

writer.add_scalars(args.result_path + 'Train_val_loss', {args.result_path+'train_loss': loss.data.item()}, niter)

后面得dict中得key是曲线的名称,后面的value是对应得append的值,再后面得niter是x坐标,这句话得意思就相当于,对于图名称为args.result_path + 'Train_val_loss'的图,对曲线名称为args.result_path+'train_loss'添加新的点,这个点为(niter, loss.data.item())

同样的,我可以画出val的loss

niter = epoch * len(train_loader) + i
writer.add_scalars(args.result_path + 'Train_val_loss', {args.result_path+'val_loss': mean_loss}, niter)

writer保存到了我们刚刚声明的路径'./log‘下面,然后终端启动tensorboard

tensorboard --logdir ./log --port 8890

不会用得进行tensorboard --help即可

然后进行端口映射就行了

实际上在使用的过程中,我发现了,如果你要保存的结果在各个子文件夹内,然后你在父文件夹运行tensorboard,就可以在浏览器看到各种结果,而不必再进行不同的端口映射

pytorch使用tensorboardX进行loss可视化实例

比如上面这个,我的resnet文件夹下有不同的我writer写入的文件,在父目录下启动tensorboard之后,

pytorch使用tensorboardX进行loss可视化实例

没毛病!

补充拓展:pytorch产生loss的计算图代码

废话不多说,直接上代码

import torch.nn as nn
import torch.nn.functional as F

class Net(nn.Module):
  def __init__(self):
    super(Net,self).__init__()
    self.conv1=nn.Conv2d(1,6,5)
    self.conv2=nn.Conv2d(6,16,5)
    self.fc1=nn.Linear(16*5*5,120)
    self.fc2=nn.Linear(120,84)
    self.fc3=nn.Linear(84,10)
  def forward(self,x):
    x=F.max_pool2d(F.relu(self.conv1(x)),(2,2))
    x=F.max_pool2d(F.relu(self.conv2(x)),2)
    x=x.view(x.size()[0],-1)
    print(x)
    x=F.relu(self.fc1(x))
    x=F.relu(self.fc2(x))
    x=self.fc3(x)
    return x
net=Net()
#params=list(net.parameters())
#for name,parameters in net.named_parameters():
#  print(name,':',parameters.size())
#print(len(params))
#print(net)
input=Variable(t.randn(1,1,32,32))
output=net(input)
#out.size()
target=Variable(t.arange(0,10))
criterion=nn.MSELoss()
loss=criterion(output,target)
loss.grad_fn

以上这篇pytorch使用tensorboardX进行loss可视化实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现的一个p2p文件传输实例
Jun 04 Python
采用Psyco实现python执行速度提高到与编译语言一样的水平
Oct 11 Python
Django使用中间键实现csrf认证详解
Jul 22 Python
浅谈对pytroch中torch.autograd.backward的思考
Dec 27 Python
python3用urllib抓取贴吧邮箱和QQ实例
Mar 10 Python
python字典和json.dumps()的遇到的坑分析
Mar 11 Python
pycharm下pyqt4安装及环境配置的教程
Apr 24 Python
基于python实现破解滑动验证码过程解析
May 28 Python
Python Map 函数的使用
Aug 28 Python
Python抖音快手代码舞(字符舞)的实现方法
Feb 07 Python
PyCharm+Miniconda3安装配置教程详解
Feb 16 Python
深入探讨opencv图像矫正算法实战
May 21 Python
python绘制动态曲线教程
Feb 24 #Python
Python 字符串处理特殊空格\xc2\xa0\t\n Non-breaking space
Feb 23 #Python
Windows系统下pycharm中的pip换源
Feb 23 #Python
推荐8款常用的Python GUI图形界面开发框架
Feb 23 #Python
PyQt5高级界面控件之QTableWidget的具体使用方法
Feb 23 #Python
PyQt5中QTableWidget如何弹出菜单的示例代码
Feb 23 #Python
Python requests设置代理的方法步骤
Feb 23 #Python
You might like
syphon 虹吸式咖啡冲泡冲煮倒水的得与失
2021/03/03 冲泡冲煮
php 删除cookie和浏览器重定向
2009/03/16 PHP
如何使用微信公众平台开发模式实现多客服
2016/01/06 PHP
PHP Oauth授权和本地加密实现方法
2016/08/12 PHP
JsDom 编程小结
2011/08/09 Javascript
JavaScript中对象属性的添加和删除示例
2014/05/12 Javascript
详解jQuery插件开发方式
2016/11/22 Javascript
AngularJS实现表单验证功能
2017/01/09 Javascript
JS 实现随机验证码功能
2017/02/15 Javascript
JavaScript基础之this详解
2017/06/04 Javascript
nodeJs爬虫的技术点总结
2018/05/13 NodeJs
微信小程序自定义多列选择器使用详解
2019/06/21 Javascript
原生JavaScript实现日历功能代码实例(无引用Jq)
2019/09/23 Javascript
解决axios post 后端无法接收数据的问题
2019/10/29 Javascript
JavaScript canvas实现跟随鼠标事件
2020/02/10 Javascript
小程序实现上传视频功能
2020/08/18 Javascript
深入讲解Python中面向对象编程的相关知识
2015/05/25 Python
Python入门_学会创建并调用函数的方法
2017/05/16 Python
让Python更加充分的使用Sqlite3
2017/12/11 Python
Django 生成登陆验证码代码分享
2017/12/12 Python
Python基于最小二乘法实现曲线拟合示例
2018/06/14 Python
python如何使用jt400.jar包代码实例
2019/12/20 Python
Python:type、object、class与内置类型实例
2019/12/25 Python
详解python tkinter模块安装过程
2020/01/06 Python
高性能钓鱼服装:Huk Gear
2019/02/20 全球购物
乌克兰最大的家用电器和电子产品连锁店:Eldorado
2019/10/02 全球购物
美国知名眼镜网站:Target Optical
2020/04/04 全球购物
Linux如何压缩可执行文件
2013/10/21 面试题
既然说Ruby中一切都是对象,那么Ruby中类也是对象吗
2013/01/26 面试题
4s店机修工岗位职责
2013/12/20 职场文书
课程设计心得体会
2013/12/28 职场文书
法律六进活动方案
2014/03/13 职场文书
抽样调查项目计划书
2014/04/24 职场文书
营销总监岗位职责
2014/09/16 职场文书
罚款通知怎么写
2015/04/22 职场文书
手写实现JS中的new
2021/11/07 Javascript