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设置windows桌面壁纸的实现代码
Jan 28 Python
python抓取百度首页的方法
May 19 Python
浅谈使用Python变量时要避免的3个错误
Oct 30 Python
Python实现判断一个字符串是否包含子串的方法总结
Nov 21 Python
Python语言描述KNN算法与Kd树
Dec 13 Python
python利用高阶函数实现剪枝函数
Mar 20 Python
python对视频画框标记后保存的方法
Dec 07 Python
docker-py 用Python调用Docker接口的方法
Aug 30 Python
python中设置超时跳过,超时退出的方式
Dec 13 Python
python利用datetime模块计算程序运行时间问题
Feb 20 Python
用 Python 制作地球仪的方法
Apr 24 Python
使用Python画了一棵圣诞树的实例代码
Nov 27 Python
如何使用Python实现一个简易的ORM模型
May 12 #Python
用python删除文件夹中的重复图片(图片去重)
May 12 #Python
Pyhton模块和包相关知识总结
python 下划线的多种应用场景总结
May 12 #Python
超级详细实用的pycharm常用快捷键
pycharm 如何查看某一函数源码的快捷键
教你使用Pandas直接核算Excel中快递费用
You might like
centos 5.6 升级php到5.3的方法
2011/05/14 PHP
解析CI的AJAX分页 另类实现方法
2013/06/27 PHP
使用ThinkPHP+Uploadify实现图片上传功能
2014/06/26 PHP
php通过function_exists检测函数是否存在的方法
2015/03/18 PHP
php简单日历函数
2015/10/28 PHP
yii框架redis结合php实现秒杀效果(实例代码)
2017/10/26 PHP
总结PHP代码规范、流程规范、git规范
2018/06/18 PHP
JQuery 解析多维的Json数据格式
2009/11/02 Javascript
在chrome中window.onload事件的一些问题
2010/03/01 Javascript
jQuery去掉字符串起始和结尾的空格(多种方法实现)
2013/04/01 Javascript
jquery使用hide方法隐藏指定id的元素
2015/03/30 Javascript
JS表格组件神器bootstrap table详解(基础版)
2015/12/08 Javascript
详解JavaScript基于面向对象之继承
2015/12/13 Javascript
jQuery Timelinr实现垂直水平时间轴插件(附源码下载)
2016/02/16 Javascript
vue 内置过滤器的使用总结(附加自定义过滤器)
2018/12/11 Javascript
如何封装了一个vue移动端下拉加载下一页数据的组件
2019/01/06 Javascript
vue路由插件之vue-route
2019/06/13 Javascript
Node.js中的异步生成器与异步迭代详解
2021/01/31 Javascript
python函数装饰器用法实例详解
2015/06/04 Python
python如何读写json数据
2018/03/21 Python
python 接口返回的json字符串实例
2018/03/27 Python
python SMTP实现发送带附件电子邮件
2018/05/22 Python
在python 不同时区之间的差值与转换方法
2019/01/14 Python
浅谈Python基础—判断和循环
2019/03/22 Python
Django使用 Bootstrap 样式修改书籍列表过程解析
2019/08/09 Python
详解Django admin高级用法
2019/11/06 Python
Ubuntu下Python+Flask分分钟搭建自己的服务器教程
2019/11/19 Python
python使用SQLAlchemy操作MySQL
2020/01/02 Python
利用Python实现Excel的文件间的数据匹配功能
2020/06/16 Python
python文件排序的方法总结
2020/09/13 Python
python实现模拟器爬取抖音评论数据的示例代码
2021/01/06 Python
python爬虫智能翻页批量下载文件的实例详解
2021/02/02 Python
CSS3制作炫酷带方向感应的鼠标滑过图片3D动画
2016/03/16 HTML / CSS
风险评估实施方案
2014/03/09 职场文书
2019年七夕情人节浪漫祝福语大全!
2019/08/08 职场文书
使用vue-element-admin框架从后端动态获取菜单功能的实现
2021/04/29 Vue.js