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的三目运算符和not in运算符使用示例
Mar 03 Python
Python安装Imaging报错:The _imaging C module is not installed问题解决方法
Aug 22 Python
python中__slots__用法实例
Jun 04 Python
Python 40行代码实现人脸识别功能
Apr 02 Python
Python利用matplotlib生成图片背景及图例透明的效果
Apr 27 Python
python定向爬取淘宝商品价格
Feb 27 Python
python实现从本地摄像头和网络摄像头截取图片功能
Jul 11 Python
利用python list完成最简单的DB连接池方法
Aug 09 Python
利用python实现AR教程
Nov 20 Python
tensorflow pb to tflite 精度下降详解
May 25 Python
Python实现删除某列中含有空值的行的示例代码
Jul 20 Python
python解包用法详解
Feb 17 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链接MySQL的常用扩展函数
2014/10/23 PHP
四种php中webservice实现的简单架构方法及实例
2015/02/03 PHP
PHP如何通过AJAX方式实现登录功能
2015/11/23 PHP
PHP操作Redis数据库常用方法示例
2018/08/25 PHP
Laravel框架实现的rbac权限管理操作示例
2019/01/16 PHP
extJs 常用到的增,删,改,查操作代码
2009/12/28 Javascript
读JavaScript DOM编程艺术笔记
2011/11/15 Javascript
JS上传前预览图片实例
2013/03/25 Javascript
jquery分页插件jpaginate在IE中不兼容问题
2014/04/22 Javascript
JavaScript插件化开发教程(六)
2015/02/01 Javascript
JavaScript实现DIV层拖动及动态增加新层的方法
2015/05/12 Javascript
完善的jquery处理机制
2016/02/21 Javascript
AngularJS基础 ng-keypress 指令简单示例
2016/08/02 Javascript
完美实现js焦点轮播效果(二)(图片可滚动)
2017/03/07 Javascript
nodejs入门教程一:概念与用法简介
2017/04/24 NodeJs
nodejs中sleep功能实现暂停几秒的方法
2017/07/12 NodeJs
Vue中封装input组件的实例详解
2017/10/17 Javascript
微信小程序模板(template)使用详解
2018/01/31 Javascript
彻底理解js面向对象之继承
2018/02/04 Javascript
vue2.0 子组件改变props值,并向父组件传值的方法
2018/03/01 Javascript
vue项目中使用百度地图的方法
2018/06/08 Javascript
详解angular脏检查原理及伪代码实现
2018/06/08 Javascript
全面解析vue router 基本使用(动态路由,嵌套路由)
2018/09/02 Javascript
Vue.js实现大屏数字滚动翻转效果
2019/11/29 Javascript
[02:27]《DAC最前线》之附加赛征程
2015/01/29 DOTA
python实现播放音频和录音功能示例代码
2018/12/30 Python
python利用Opencv实现人脸识别功能
2019/04/25 Python
python根据文本生成词云图代码实例
2019/11/15 Python
Crabtree & Evelyn英国官网:瑰珀翠护手霜、香水、沐浴和身体护理
2018/04/26 全球购物
美国电子产品购物网站:BuyDig.com
2020/06/17 全球购物
就业协议书怎么填
2014/04/11 职场文书
文明之星事迹材料
2014/05/09 职场文书
基层党组织整改方案
2014/10/25 职场文书
幼儿园2015年度工作总结
2015/04/01 职场文书
装饰技术负责人岗位职责
2015/04/13 职场文书
《西游记》读后感(3篇)
2019/09/20 职场文书