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实现根据窗口标题调用窗口的方法
Mar 13 Python
python高手之路python处理excel文件(方法汇总)
Jan 07 Python
Python实现针对中文排序的方法
May 09 Python
Python实现中一次读取多个值的方法
Apr 22 Python
python实现画五角星和螺旋线的示例
Jan 20 Python
Python字典的核心底层原理讲解
Jan 24 Python
Python os.access()用法实例
Feb 18 Python
python cumsum函数的具体使用
Jul 29 Python
python日期与时间戳的各种转换示例
Feb 12 Python
Python数组拼接np.concatenate实现过程
Apr 18 Python
Python实现计算图像RGB均值方式
Jun 04 Python
Python利用机器学习算法实现垃圾邮件的识别
Jun 28 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
Win2003服务器安全加固设置--进一步提高服务器安全性
2007/05/23 PHP
PHP将两个关联数组合并函数提高函数效率
2014/03/18 PHP
wamp安装后自定义配置的方法
2014/08/23 PHP
PHP运用foreach神奇的转换数组(实例讲解)
2018/02/01 PHP
javascript 弹出窗口中是否显示地址栏的实现代码
2011/04/14 Javascript
JavaScript执行顺序详细介绍
2013/12/04 Javascript
用jquery实现动画跳到顶部和底部(这个比较简单)
2014/09/01 Javascript
jQuery表格插件datatables用法总结
2014/09/05 Javascript
javascript实现简单的二级联动
2015/03/19 Javascript
js实现(全选)多选按钮的方法【附实例】
2016/03/30 Javascript
laypage分页控件使用实例详解
2016/05/19 Javascript
JS+Canvas绘制时钟效果
2020/08/20 Javascript
Node.js中防止错误导致的进程阻塞的方法
2016/08/11 Javascript
jQuery操作dom实现弹出页面遮罩层(web端和移动端阻止遮罩层的滑动)
2016/08/25 Javascript
纯js模仿windows系统日历
2017/02/04 Javascript
webpack2.0搭建前端项目的教程详解
2017/04/05 Javascript
bootstrap3使用bootstrap datetimepicker日期插件
2017/05/24 Javascript
详解Angular4 路由设置相关
2017/08/26 Javascript
JQuery Ajax动态加载Table数据的实例讲解
2018/08/09 jQuery
ztree加载完成后显示勾选节点的实现代码
2018/10/22 Javascript
jQuery内容过滤选择器与子元素过滤选择器用法实例分析
2019/02/20 jQuery
详解微信小程序中var、let、const用法与区别
2020/01/11 Javascript
Python下rrdtool模块的基本使用方法
2015/11/13 Python
使用python生成目录树
2018/03/29 Python
Python xpath表达式如何实现数据处理
2020/06/13 Python
Farfetch美国:奢侈品牌时尚购物平台
2019/05/02 全球购物
Boolean b = new Boolean(“abcde”); 会编译错误码
2013/11/27 面试题
编辑找工作求职信范文
2013/12/16 职场文书
班级寄语大全
2014/04/10 职场文书
美术课外活动总结
2014/07/08 职场文书
2015年教师新年寄语
2014/12/08 职场文书
2014年电话客服工作总结
2014/12/09 职场文书
2016教师廉洁教育心得体会
2016/01/13 职场文书
2019个人工作态度自我评价
2019/04/24 职场文书
python删除csv文件的行列
2021/04/06 Python
分享几个JavaScript运算符的使用技巧
2021/04/24 Javascript