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实现
Aug 24 Python
详解设计模式中的工厂方法模式在Python程序中的运用
Mar 02 Python
举例讲解Python的lambda语句声明匿名函数的用法
Jul 01 Python
Python实现的圆形绘制(画圆)示例
Jan 31 Python
解决python 未发现数据源名称并且未指定默认驱动程序的问题
Dec 07 Python
Django在pycharm下修改默认启动端口的方法
Jul 26 Python
python实现京东订单推送到测试环境,提供便利操作示例
Aug 09 Python
python实现图片插入文字
Nov 26 Python
Python列表list操作相关知识小结
Jan 29 Python
pyspark给dataframe增加新的一列的实现示例
Apr 24 Python
Python ORM框架Peewee用法详解
Apr 29 Python
浅谈Python从全局与局部变量到装饰器的相关知识
Jun 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
谈谈PHP的输入输出流
2007/02/14 PHP
JavaScript中将一个值转换为字符串的方法分析[译]
2012/09/21 Javascript
javascript中input中readonly和disabled区别介绍
2012/10/23 Javascript
再探JavaScript作用域
2014/09/24 Javascript
JavaScript正则表达式之multiline属性的应用
2015/06/16 Javascript
jQuery使用$获取对象后检查该对象是否存在的实现方法
2016/09/04 Javascript
探索Vue.js component内容实现
2016/11/03 Javascript
学习 NodeJS 第八天:Socket 通讯实例
2016/12/21 NodeJs
ECMAScript6 新特性范例大全
2017/03/24 Javascript
基于AngularJS的拖拽文件上传的实例代码
2017/07/15 Javascript
使用vue-cli创建项目的图文教程(新手入门篇)
2018/05/02 Javascript
jQuery 点击获取验证码按钮及倒计时功能
2018/09/20 jQuery
JavaScript运动原理基础知识详解
2020/04/02 Javascript
Nodejs在局域网配置https访问的实现方法
2020/10/17 NodeJs
[47:18]完美世界DOTA2联赛循环赛 IO vs FTD BO2第一场 11.05
2020/11/06 DOTA
Python类的专用方法实例分析
2015/01/09 Python
最大K个数问题的Python版解法总结
2016/06/16 Python
Win10下Python环境搭建与配置教程
2016/11/18 Python
Python人脸识别初探
2017/12/21 Python
Python实现破解12306图片验证码的方法分析
2017/12/29 Python
浅谈pandas中shift和diff函数关系
2018/04/08 Python
python如何实现读取并显示图片(不需要图形界面)
2020/07/08 Python
华为旗下电子商务平台:华为商城
2016/08/06 全球购物
德国旅游网站:weg.de
2018/06/03 全球购物
数据库什么时候应该被重组
2012/11/02 面试题
国庆横幅标语
2014/10/08 职场文书
劳动争议仲裁代理词
2015/05/25 职场文书
2015暑假社会调查报告
2015/07/13 职场文书
婚礼上证婚人致辞
2015/07/28 职场文书
解决Python字典查找报Keyerror的问题
2021/05/26 Python
Java并发编程必备之Future机制
2021/06/30 Java/Android
Java实现聊天机器人完善版
2021/07/04 Java/Android
Python爬虫中urllib3与urllib的区别是什么
2021/07/21 Python
电脑无法安装Windows 11怎么办?无法安装Win11的解决方法
2021/11/21 数码科技
Redis监控工具RedisInsight安装与使用
2022/03/21 Redis
如何在Python中妥善使用进度条详解
2022/04/05 Python