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实现的解析crontab配置文件代码
Jun 30 Python
举例讲解Python中的迭代器、生成器与列表解析用法
Mar 20 Python
python利用Guetzli批量压缩图片
Mar 23 Python
python数据抓取分析的示例代码(python + mongodb)
Dec 25 Python
Python分支结构(switch)操作简介
Jan 17 Python
django-初始配置(纯手写)详解
Jul 30 Python
Python中模块(Module)和包(Package)的区别详解
Aug 07 Python
Numpy将二维数组添加到空数组的实现
Dec 05 Python
详解Python中字符串前“b”,“r”,“u”,“f”的作用
Dec 18 Python
新手入门学习python Numpy基础操作
Mar 02 Python
使用Pycharm在运行过程中,查看每个变量的操作(show variables)
Jun 08 Python
Python 详解通过Scrapy框架实现爬取CSDN全站热榜标题热词流程
Nov 11 Python
如何使用Python实现一个简易的ORM模型
May 12 #Python
用python删除文件夹中的重复图片(图片去重)
May 12 #Python
Pyhton模块和包相关知识总结
python 下划线的多种应用场景总结
May 12 #Python
超级详细实用的pycharm常用快捷键
pycharm 如何查看某一函数源码的快捷键
教你使用Pandas直接核算Excel中快递费用
You might like
php实现天干地支计算器示例
2014/03/14 PHP
php判断数组元素中是否存在某个字符串的方法
2014/06/14 PHP
详解PHP的Yii框架中的Controller控制器
2016/03/29 PHP
PHP序列化/对象注入漏洞分析
2016/04/18 PHP
浅谈PHP正则中的捕获组与非捕获组
2016/07/18 PHP
浅谈PHP中try{}catch{}的使用方法
2016/12/09 PHP
jquery与google map api结合使用 控件,监听器
2010/03/04 Javascript
Extjs Ext.MessageBox.confirm 确认对话框详解
2010/04/02 Javascript
浅析Js(Jquery)中,字符串与JSON格式互相转换的示例(直接运行实例)
2013/07/09 Javascript
JavaScript定义类的几种方式总结
2014/01/06 Javascript
使用jQuery将多条数据插入模态框的实现代码
2014/10/08 Javascript
jQuery制作简洁的多级联动Select下拉框
2014/12/23 Javascript
JS正则表达式验证中文字符
2017/05/08 Javascript
原生JavaScript实现的简单省市县三级联动功能示例
2017/05/27 Javascript
浅析微信扫码登录原理(小结)
2018/10/29 Javascript
[01:38]DOTA2 2015国际邀请赛中国区预选赛 Showopen
2015/06/01 DOTA
[00:44]华丽开场!DOTA2勇士令状带来全新对阵画面
2019/05/15 DOTA
Python实现从脚本里运行scrapy的方法
2015/04/07 Python
Python中死锁的形成示例及死锁情况的防止
2016/06/14 Python
Python实现嵌套列表去重方法示例
2017/12/28 Python
Python交互环境下实现输入代码
2018/06/22 Python
python 读取修改pcap包的例子
2019/07/23 Python
Python实现性能自动化测试竟然如此简单
2019/07/30 Python
Python 50行爬虫抓取并处理图灵书目过程详解
2019/09/20 Python
使用Python获取当前工作目录和执行命令的位置
2020/03/09 Python
Jupyter Notebook的连接密码 token查询方式
2020/04/21 Python
俄罗斯购买内衣网站:Trusiki
2020/08/22 全球购物
中专毕业个人的自荐信格式
2013/09/21 职场文书
城市规划毕业生求职信
2013/10/10 职场文书
饮料业务员岗位职责
2013/12/15 职场文书
给老婆的婚前保证书
2014/02/01 职场文书
药品采购员岗位职责
2014/02/08 职场文书
大学学习计划书范文
2014/05/02 职场文书
小学语文复习计划
2015/01/19 职场文书
运动会5000米加油稿
2015/07/21 职场文书
《司马光》教学反思
2016/02/22 职场文书