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 27 Python
Python中方法链的使用方法
Feb 23 Python
Python学习之Django的管理界面代码示例
Feb 10 Python
Python实现字符串的逆序 C++字符串逆序算法
May 28 Python
Python 实现字符串中指定位置插入一个字符
May 02 Python
详解Python如何生成词云的方法
Jun 01 Python
为什么黑客都用python(123个黑客必备的Python工具)
Jan 31 Python
python 链接sqlserver 写接口实例
Mar 11 Python
Python collections.defaultdict模块用法详解
Jun 18 Python
Django如何在不停机的情况下创建索引
Aug 02 Python
python制作一个简单的gui 数据库查询界面
Nov 19 Python
教你怎么用Python selenium操作浏览器对象的基础API
Jun 23 Python
如何使用Python实现一个简易的ORM模型
May 12 #Python
用python删除文件夹中的重复图片(图片去重)
May 12 #Python
Pyhton模块和包相关知识总结
python 下划线的多种应用场景总结
May 12 #Python
超级详细实用的pycharm常用快捷键
pycharm 如何查看某一函数源码的快捷键
教你使用Pandas直接核算Excel中快递费用
You might like
php大小写转换函数(strtolower、strtoupper)用法介绍
2017/11/17 PHP
PHP date()格式MySQL中插入datetime方法
2019/01/29 PHP
解决PHP Opcache 缓存刷新、代码重载出现无法更新代码的问题
2020/08/24 PHP
插件:检测javascript的内存泄漏
2007/03/04 Javascript
将nodejs打包工具整合到鼠标右键的方法
2013/05/11 NodeJs
用jQuery实现的智能隐藏、滑动效果的返回顶部代码
2014/03/18 Javascript
JavaScript中的ArrayBuffer详细介绍
2014/12/08 Javascript
javascript实现漂亮的拖动层,窗口拖拽特效
2015/04/24 Javascript
js实现两点之间画线的方法
2015/05/12 Javascript
dedecms页面如何获取会员状态的实例代码
2016/03/15 Javascript
jQuery获取复选框被选中数量及判断选择值的方法详解
2016/05/25 Javascript
Listloading.js移动端上拉下拉刷新组件
2016/08/04 Javascript
Vue.js快速入门教程
2016/09/07 Javascript
vue 和vue-touch 实现移动端左右导航效果(仿京东移动站导航)
2017/04/22 Javascript
微信小程序判断用户是否需要再次授权获取个人信息
2019/07/18 Javascript
解决layui批量传值到后台操作时出现传值为空的问题
2019/09/28 Javascript
vue项目中常见问题及解决方案(推荐)
2019/10/21 Javascript
关于vue表单提交防双/多击的例子
2019/10/31 Javascript
js实现左右轮播图
2020/01/09 Javascript
Vue-Ant Design Vue-普通及自定义校验实例
2020/10/24 Javascript
vant中的toast层级改变操作
2020/11/04 Javascript
pygame游戏之旅 添加键盘按键的方法
2018/11/20 Python
Python利用 utf-8-sig 编码格式解决写入 csv 文件乱码问题
2020/02/21 Python
python matlab库简单用法讲解
2020/12/31 Python
CSS3中使用RGBA设置透明度的示例
2015/08/04 HTML / CSS
CSS3实现大小不一的粒子旋转加载动画
2016/04/21 HTML / CSS
美国最佳在线航班预订网站:LookupFare
2019/03/26 全球购物
我的大学生活职业生涯规划
2014/01/02 职场文书
初中美术教学反思
2014/01/29 职场文书
常务副总经理岗位职责
2014/04/12 职场文书
工作推荐信范文
2014/05/10 职场文书
考试作弊检讨书怎么写?
2014/12/21 职场文书
逃课检讨书怎么写
2015/01/01 职场文书
单位介绍信格式范文
2015/05/04 职场文书
交流会主持词
2015/07/02 职场文书
MySQL 重写查询语句的三种策略
2021/05/10 MySQL