pytorch损失反向传播后梯度为none的问题


Posted in Python onMay 12, 2021

错误代码:输出grad为none

a = torch.ones((2, 2), requires_grad=True).to(device)
b = a.sum()
b.backward()
print(a.grad)

由于.to(device)是一次操作,此时的a已经不是叶子节点了

修改后的代码为:

a = torch.ones((2, 2), requires_grad=True)
c = a.to(device)

b = c.sum()
b.backward()
print(a.grad)

类似错误:

self.miu = torch.nn.Parameter(torch.ones(self.dimensional)) * 0.01

应该为

self.miu = torch.nn.Parameter(torch.ones(self.dimensional) * 0.01)

补充:pytorch梯度返回none的bug

pytorch1.4.0如果使用了view方法,reshape方法

tensor即使设置了requires_grad,反向传播之后, x返回没有grad梯度,为none

不知道其他版本有无此bug

pytorch损失反向传播后梯度为none的问题pytorch损失反向传播后梯度为none的问题pytorch损失反向传播后梯度为none的问题

补充:PyTorch中梯度反向传播的注意点

在一个迭代循环中

optimizer.zero_grad()语句的位置比较随意,只要放在loss.backward()前面即可,它的作用是将梯度归零,否则会在每一个迭代中进行累加,

loss.backward()的作用是反向传播,计算梯度,optimizer.step()的功能是优化器自动完成参数的更新。

optimizer.zero_grad()
loss.backward()
optimizer.step()

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
举例讲解Python面向对象编程中类的继承
Jun 17 Python
详解python里使用正则表达式的分组命名方式
Oct 24 Python
Python之dict(或对象)与json之间的互相转化实例
Jun 05 Python
Python 带有参数的装饰器实例代码详解
Dec 06 Python
情人节快乐! python绘制漂亮玫瑰
Aug 18 Python
python实现祝福弹窗效果
Apr 07 Python
python3中property使用方法详解
Apr 23 Python
Django中如何使用sass的方法步骤
Jul 09 Python
Django框架静态文件处理、中间件、上传文件操作实例详解
Feb 29 Python
python中什么是面向对象
Jun 11 Python
opencv 阈值分割的具体使用
Jul 08 Python
python如何操作mysql
Aug 17 Python
如何使用Python实现一个简易的ORM模型
May 12 #Python
用python删除文件夹中的重复图片(图片去重)
May 12 #Python
Pyhton模块和包相关知识总结
python 下划线的多种应用场景总结
May 12 #Python
超级详细实用的pycharm常用快捷键
pycharm 如何查看某一函数源码的快捷键
教你使用Pandas直接核算Excel中快递费用
You might like
Laravel 在views中加载公共页面的实现代码
2019/10/22 PHP
php计数排序算法的实现代码(附四个实例代码)
2020/03/31 PHP
IE 缓存策略的BUG的解决方法
2007/07/21 Javascript
解析jQuery与其它js(Prototype)库兼容共存
2013/07/04 Javascript
Jquery 模板数据绑定插件的使用方法详解
2013/07/08 Javascript
JS合并数组的几种方法及优劣比较
2014/09/19 Javascript
jQuery 动态云标签插件
2014/11/11 Javascript
js实现YouKu的漂亮搜索框效果
2015/08/19 Javascript
JavaScript操作选择对象的简单实例
2016/05/16 Javascript
AngularJS中directive指令使用之事件绑定与指令交互用法示例
2016/11/22 Javascript
vue中v-for加载本地静态图片方法
2018/03/03 Javascript
Vue 路由 过渡动效 数据获取方法
2018/07/31 Javascript
jQuery无冲突模式详解
2019/01/17 jQuery
vue 表单之通过v-model绑定单选按钮radio
2019/05/13 Javascript
redux.js详解及基本使用
2019/05/24 Javascript
layui--js控制switch的切换方法
2019/09/03 Javascript
matplotlib实现热成像图colorbar和极坐标图的方法
2018/12/13 Python
Python函数和模块的使用总结
2019/05/20 Python
Python迭代器iterator生成器generator使用解析
2019/10/24 Python
python实现拼图小游戏
2020/02/22 Python
python微信公众号开发简单流程实现
2020/03/09 Python
pycharm配置QtDesigner的超详细方法
2021/01/25 Python
Python爬虫自动化爬取b站实时弹幕实例方法
2021/01/26 Python
美国领先的家庭智能音响系统品牌:Sonos
2018/07/20 全球购物
Gerry Weber德国官网:优质女性时装,德国最大的时装公司之一
2019/11/02 全球购物
函数指针的定义是什么
2016/08/14 面试题
《兰亭集序》教学反思
2014/02/11 职场文书
企业年会主持词
2014/03/27 职场文书
三好学生先进事迹材料
2014/08/28 职场文书
普通党员个人剖析材料
2014/10/08 职场文书
党的群众路线教育实践活动整改落实情况报告
2014/10/28 职场文书
乡镇群众路线专项整治方案
2014/11/03 职场文书
2016暑期社会实践心得体会范文
2016/01/14 职场文书
导游词之临安白水涧
2019/11/05 职场文书
Java8中接口的新特性使用指南
2021/11/01 Java/Android
一级电子管军用接收机测评
2022/04/05 无线电