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中的for循环
Sep 28 Python
python按修改时间顺序排列文件的实例代码
Jul 25 Python
深入浅析Python科学计算库Scipy及安装步骤
Oct 12 Python
python中@property和property函数常见使用方法示例
Oct 21 Python
python打印文件的前几行或最后几行教程
Feb 13 Python
python判断正负数方式
Jun 03 Python
PyCharm2019 安装和配置教程详解附激活码
Jul 31 Python
Python Pivot table透视表使用方法解析
Sep 11 Python
Python3.9新特性详解
Oct 10 Python
如何基于Python爬虫爬取美团酒店信息
Nov 03 Python
python 检测nginx服务邮件报警的脚本
Dec 31 Python
教你怎么用Python操作MySql数据库
May 31 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面向对象全攻略 (四)构造方法与析构方法
2009/09/30 PHP
让您的菜单不离网站
2006/10/03 Javascript
对字符串进行HTML编码和解码的JavaScript函数
2010/02/01 Javascript
js清除input中type等于file的值域(示例代码)
2013/12/24 Javascript
鼠标经过tr时,改变tr当前背景颜色
2014/01/13 Javascript
JS创建自定义表格具体实现
2014/02/11 Javascript
详解vue-router 2.0 常用基础知识点之router.push()
2017/05/10 Javascript
关于vue.js组件数据流的问题
2017/07/26 Javascript
Angular4学习笔记之实现绑定和分包
2017/08/01 Javascript
vue实现微信分享朋友圈,发送朋友的示例讲解
2018/02/10 Javascript
基于Vuejs的搜索匹配功能实现方法
2018/03/03 Javascript
js经验分享 JavaScript反调试技巧
2018/03/10 Javascript
浅谈JS和jQuery的区别
2019/03/27 jQuery
使用Vue中 v-for循环列表控制按钮隐藏显示功能
2019/04/23 Javascript
利用d3.js制作连线动画图与编辑器的方法实例
2019/09/05 Javascript
vue封装自定义指令之动态显示title操作(溢出显示,不溢出不显示)
2020/11/12 Javascript
vue绑定class的三种方法
2020/12/24 Vue.js
[46:10]2014 DOTA2国际邀请赛中国区预选赛 CnB VS HGT
2014/05/21 DOTA
python连接mongodb操作数据示例(mongodb数据库配置类)
2013/12/31 Python
用实例详解Python中的Django框架中prefetch_related()函数对数据库查询的优化
2015/04/01 Python
Django中使用locals()函数的技巧
2015/07/16 Python
python使用标准库根据进程名如何获取进程的pid详解
2017/10/31 Python
python中的set实现不重复的排序原理
2018/01/24 Python
基于python代码批量处理图片resize
2020/06/04 Python
基于Html5实现的语音搜索功能
2019/05/13 HTML / CSS
意大利拉斐尔时尚购物网:Raffaello Network(支持中文)
2018/11/09 全球购物
英国在线泳装店:Simply Swim
2019/05/05 全球购物
玲玲的画教学反思
2014/02/04 职场文书
车间主任岗位职责
2014/03/16 职场文书
学习型党组织心得体会
2014/09/12 职场文书
2014年计划生育工作总结
2014/11/14 职场文书
区域经理岗位职责
2015/02/02 职场文书
外贸采购员岗位职责
2015/04/03 职场文书
免职通知
2015/04/23 职场文书
送达通知书
2015/04/25 职场文书
Python os和os.path模块详情
2022/04/02 Python