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 相关文章推荐
Windows下Python使用Pandas模块操作Excel文件的教程
May 31 Python
Python列表list内建函数用法实例分析【insert、remove、index、pop等】
Jul 24 Python
Sublime开发python程序的示例代码
Jan 24 Python
django用户注册、登录、注销和用户扩展的示例
Mar 19 Python
Python3 replace()函数使用方法
Mar 19 Python
儿童学习python的一些小技巧
May 27 Python
OPENCV去除小连通区域,去除孔洞的实例讲解
Jun 21 Python
python使用threading.Condition交替打印两个字符
May 07 Python
关于python tushare Tkinter构建的简单股票可视化查询系统(Beta v0.13)
Oct 19 Python
Python如何批量生成和调用变量
Nov 21 Python
pytorch DataLoader的num_workers参数与设置大小详解
May 28 Python
PYTHON 使用 Pandas 删除某列指定值所在的行
Apr 28 Python
如何使用Python实现一个简易的ORM模型
May 12 #Python
用python删除文件夹中的重复图片(图片去重)
May 12 #Python
Pyhton模块和包相关知识总结
python 下划线的多种应用场景总结
May 12 #Python
超级详细实用的pycharm常用快捷键
pycharm 如何查看某一函数源码的快捷键
教你使用Pandas直接核算Excel中快递费用
You might like
2.PHP入门
2006/10/09 PHP
PHP实现APP微信支付的实例讲解
2018/02/10 PHP
PHP使用HTML5 FormData对象提交表单操作示例
2019/07/02 PHP
如何解决PHP获取不到SESSION信息之一般情况
2019/10/10 PHP
如何确保JavaScript的执行顺序 之jQuery.html并非万能钥匙
2011/03/03 Javascript
浏览器缩放检测的js代码
2014/09/28 Javascript
JavaScript跨域方法汇总
2014/10/16 Javascript
使用js实现数据格式化
2014/12/03 Javascript
javascript实现仿IE顶部的可关闭警告条
2015/05/05 Javascript
Jquery实现简单的轮播效果(代码管用)
2016/03/14 Javascript
JavaScript  cookie 跨域访问之广告推广
2016/04/20 Javascript
第三章之Bootstrap 表格与按钮功能
2016/04/25 Javascript
JS优化与惰性载入函数实例分析
2017/04/06 Javascript
JavaScript运动框架 多物体任意值运动(三)
2017/05/17 Javascript
vue微信分享的实现(在当前页面分享其他页面)
2019/04/16 Javascript
jQuery 选择器用法实例分析【prev + next】
2020/05/22 jQuery
[02:27]DOTA2英雄基础教程 莱恩
2014/01/17 DOTA
[01:36]极致酷炫!TI9典藏宝瓶+撼地者至宝展示
2019/06/11 DOTA
使用tensorflow实现AlexNet
2017/11/20 Python
用Python写脚本,实现完全备份和增量备份的示例
2018/04/29 Python
flask框架实现连接sqlite3数据库的方法分析
2018/07/16 Python
Python制作微信好友背景墙教程(附完整代码)
2019/07/17 Python
Django在pycharm下修改默认启动端口的方法
2019/07/26 Python
获取Pytorch中间某一层权重或者特征的例子
2019/08/17 Python
Python 生成VOC格式的标签实例
2020/03/10 Python
keras 自定义loss层+接受输入实例
2020/06/28 Python
Python读取多列数据以及用matplotlib制作图表方法实例
2020/09/23 Python
PyCharm2020最新激活码+激活码补丁(亲测最新版PyCharm2020.2激活成功)
2020/11/25 Python
基于Html5实现的react拖拽排序组件示例
2018/08/13 HTML / CSS
英国在线药房:Express Chemist
2019/03/28 全球购物
美术指导求职信
2014/03/17 职场文书
扩大国家免疫规划实施方案
2014/03/21 职场文书
聘任书的写作格式及范文
2014/03/29 职场文书
施工安全责任书
2014/04/14 职场文书
学校党的群众路线教育实践活动个人整改方案
2014/10/31 职场文书
在项目中使用redis做缓存的一些思路
2021/09/14 Redis