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 相关文章推荐
github配置使用指南
Nov 18 Python
Python聚类算法之凝聚层次聚类实例分析
Nov 20 Python
Python和C/C++交互的几种方法总结
May 11 Python
python 重命名轴索引的方法
Nov 10 Python
利用Pandas和Numpy按时间戳将数据以Groupby方式分组
Jul 22 Python
Django CBV与FBV原理及实例详解
Aug 12 Python
keras 权重保存和权重载入方式
May 21 Python
Python应用实现处理excel数据过程解析
Jun 19 Python
Django视图、传参和forms验证操作
Jul 15 Python
Python eval函数原理及用法解析
Nov 14 Python
给numpy.array增加维度的超简单方法
Jun 02 Python
Python通过loop.run_in_executor执行同步代码 同步变为异步
Apr 11 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
php实现转换html格式为文本格式的方法
2016/05/16 PHP
JavaScript null和undefined区别分析
2009/10/14 Javascript
Javascript学习笔记8 用JSON做原型
2010/01/11 Javascript
JavaScript 原型学习总结
2010/10/29 Javascript
actionscript与javascript的区别
2011/05/25 Javascript
window.location 对象所包含的属性
2014/10/10 Javascript
jQuery中prev()方法用法实例
2015/01/08 Javascript
利用JQuery写一个简单的异步分页插件
2016/03/07 Javascript
Extjs4.0 ComboBox如何实现三级联动
2016/05/11 Javascript
用JS动态改变表单form里的action值属性的两种方法
2016/05/25 Javascript
Js删除数组中某一项或几项的几种方法(推荐)
2016/07/27 Javascript
AngularJS基础 ng-model 指令详解及示例代码
2016/08/02 Javascript
浅谈javascript中的数据类型转换
2016/12/27 Javascript
js实现微信/QQ直接跳转到支付宝APP打开口令领红包功能
2018/01/09 Javascript
新版vue-cli模板下本地开发环境使用node服务器跨域的方法
2018/04/03 Javascript
JavaScript设计模式之工厂模式和抽象工厂模式定义与用法分析
2018/07/26 Javascript
vue 动态绑定背景图片的方法
2018/08/10 Javascript
jquery获取元素到屏幕四周可视距离的方法
2018/09/05 jQuery
纯javascript前端实现base64图片下载(兼容IE10+)
2018/09/14 Javascript
在Create React App中使用CSS Modules的方法示例
2019/01/15 Javascript
微信小程序之左右布局的实现代码
2019/12/13 Javascript
理解Proxy及使用Proxy实现vue数据双向绑定操作
2020/07/18 Javascript
[51:17]Mineski vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.22
2019/09/05 DOTA
Python ORM框架SQLAlchemy学习笔记之关系映射实例
2014/06/10 Python
详解Python中expandtabs()方法的使用
2015/05/18 Python
浅析PHP与Python进行数据交互
2018/05/15 Python
Python Flask框架扩展操作示例
2019/05/03 Python
python求加权平均值的实例(附纯python写法)
2019/08/22 Python
HTML4和HTML5之间除了相似以外的10个主要不同
2012/12/13 HTML / CSS
Herve Leger官网:标志性绷带连衣裙等
2018/12/26 全球购物
自我评价优秀范文分享
2013/11/30 职场文书
校运动会广播稿(100篇)
2014/09/12 职场文书
《检阅》教学反思
2016/02/22 职场文书
详解nginx.conf 中 root 目录设置问题
2021/04/01 Servers
MySql存储过程之逻辑判断和条件控制
2021/05/26 MySQL
python数字类型和占位符详情
2022/03/13 Python