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学习笔记 下载
Feb 10 Python
Python功能键的读取方法
May 28 Python
举例简单讲解Python中的数据存储模块shelve的用法
Mar 03 Python
基于Python代码编辑器的选用(详解)
Sep 13 Python
解决Ubuntu pip 安装 mysql-python包出错的问题
Jun 11 Python
Python将多个list合并为1个list的方法
Jun 27 Python
Pandas DataFrame 取一行数据会得到Series的方法
Nov 10 Python
python字符串中匹配数字的正则表达式
Jul 03 Python
django的auth认证,authenticate和装饰器功能详解
Jul 25 Python
Python threading的使用方法解析
Aug 28 Python
tensorflow estimator 使用hook实现finetune方式
Jan 21 Python
pytorch中Schedule与warmup_steps的用法说明
May 24 Python
如何使用Python实现一个简易的ORM模型
May 12 #Python
用python删除文件夹中的重复图片(图片去重)
May 12 #Python
Pyhton模块和包相关知识总结
python 下划线的多种应用场景总结
May 12 #Python
超级详细实用的pycharm常用快捷键
pycharm 如何查看某一函数源码的快捷键
教你使用Pandas直接核算Excel中快递费用
You might like
PHP实现邮件群发的源码
2013/06/18 PHP
win7下memCache的安装过程(具体操作步骤)
2013/06/28 PHP
PHP函数strip_tags的一个bug浅析
2014/05/22 PHP
nginx 设置多个站跨域
2021/03/09 Servers
jQuery AnythingSlider滑动效果插件
2010/02/07 Javascript
不使用XMLHttpRequest实现异步加载 Iframe和script
2012/10/29 Javascript
js对图片base64编码字符串进行解码并输出图像示例
2014/03/17 Javascript
jquery.validate提示错误信息位置方法
2016/01/22 Javascript
深入浅析JavaScript面向对象和原型函数
2016/02/06 Javascript
JS按条件 serialize() 对应标签的使用方法
2017/07/24 Javascript
详解VueJS应用中管理用户权限
2018/02/02 Javascript
vue todo-list组件发布到npm上的方法
2018/04/04 Javascript
jQuery 选择器用法基础入门示例
2020/01/04 jQuery
Vue脚手架编写试卷页面功能
2020/03/17 Javascript
Python-嵌套列表list的全面解析
2016/06/08 Python
微信跳一跳自动运行python脚本
2018/01/08 Python
pygame游戏之旅 计算游戏中躲过的障碍数量
2018/11/20 Python
Python机器学习算法库scikit-learn学习之决策树实现方法详解
2019/07/04 Python
Python各种扩展名区别点整理
2020/02/27 Python
python学习笔记之多进程
2020/08/06 Python
Python 在 VSCode 中使用 IPython Kernel 的方法详解
2020/09/05 Python
PyCharm常用配置和常用插件(小结)
2021/02/06 Python
CSS3选择器新增问题的实现
2021/01/21 HTML / CSS
联想印度官方网上商店:Lenovo India
2019/08/24 全球购物
教育实习生的自我评价分享
2013/11/21 职场文书
简单而又朴实的个人求职信分享
2013/12/12 职场文书
12岁生日感言
2014/01/21 职场文书
诚信贷款承诺书
2014/05/30 职场文书
政风行风整改方案
2014/10/25 职场文书
干部作风建设工作总结
2014/10/29 职场文书
上课睡觉检讨书300字
2014/11/18 职场文书
计算机专业自荐信范文
2015/03/26 职场文书
辞职信格式范文
2015/05/13 职场文书
nginx处理http请求实现过程解析
2021/03/31 Servers
JavaScript流程控制(循环)
2021/12/06 Javascript
SQL Server使用导出向导功能
2022/04/08 SQL Server