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中Continue语句的用法的举例详解
May 14 Python
Python基于csv模块实现读取与写入csv数据的方法
Jan 18 Python
解决已经安装requests,却依然提示No module named requests问题
May 18 Python
python 3.6.5 安装配置方法图文教程
Sep 18 Python
浅谈django三种缓存模式的使用及注意点
Sep 30 Python
对pandas将dataframe中某列按照条件赋值的实例讲解
Nov 29 Python
python绘制评估优化算法性能的测试函数
Jun 25 Python
python实现自动化上线脚本的示例
Jul 01 Python
Python 多线程其他属性以及继承Thread类详解
Aug 28 Python
python实现密码强度校验
Mar 18 Python
Python打印不合法的文件名
Jul 31 Python
python爬虫请求库httpx和parsel解析库的使用测评
May 10 Python
如何使用Python实现一个简易的ORM模型
May 12 #Python
用python删除文件夹中的重复图片(图片去重)
May 12 #Python
Pyhton模块和包相关知识总结
python 下划线的多种应用场景总结
May 12 #Python
超级详细实用的pycharm常用快捷键
pycharm 如何查看某一函数源码的快捷键
教你使用Pandas直接核算Excel中快递费用
You might like
php数组函数序列之array_slice() - 在数组中根据条件取出一段值,并返回
2011/11/07 PHP
使用php批量删除数据库下所有前缀为prefix_的表
2014/06/09 PHP
PHP 图片处理
2020/09/16 PHP
javascript firefox不显示本地预览图片问题的解决方法
2008/11/12 Javascript
最近项目写了一些js,水平有待提高
2009/01/31 Javascript
10个基于jQuery或JavaScript的WYSIWYG 编辑器整理
2010/05/06 Javascript
javascript 基础篇4 window对象,DOM
2012/03/14 Javascript
Js nodeType 属性全面解析
2013/11/14 Javascript
JQuery实现倒计时按钮具体方法
2013/11/14 Javascript
Javascript验证用户输入URL地址是否为空及格式是否正确
2014/10/09 Javascript
一个简单的JavaScript Map实例(分享)
2016/08/03 Javascript
jQuery基本过滤选择器用法示例
2016/09/09 Javascript
bootstrap学习使用(导航条、下拉菜单、轮播、栅格布局等)
2016/12/01 Javascript
nodejs基础知识
2017/02/03 NodeJs
Node.js学习之查询字符串解析querystring详解
2017/09/28 Javascript
react-native android状态栏的实现
2018/06/15 Javascript
JavaScript设计模式--简单工厂模式实例分析【XHR工厂案例】
2020/05/23 Javascript
vue created钩子函数与mounted钩子函数的用法区别
2020/11/05 Javascript
js实现头像上传并且可预览提交
2020/12/25 Javascript
[01:01:01]完美世界DOTA2联赛循环赛 GXR vs FTD BO2第一场 10.29
2020/10/29 DOTA
利用python获得时间的实例说明
2013/03/25 Python
Python实现将数据库一键导出为Excel表格的实例
2016/12/30 Python
简单谈谈python中的语句和语法
2017/08/10 Python
pygame用blit()实现动画效果的示例代码
2020/05/28 Python
如何查看python关键字
2021/01/17 Python
使用简单的CSS3属性实现炫酷读者墙效果
2014/01/08 HTML / CSS
国外软件测试工程师面试题
2016/12/09 面试题
销售总监工作职责
2013/11/21 职场文书
21岁生日感言
2014/02/27 职场文书
国际商务专业求职信
2014/07/15 职场文书
党员个人对照检查材料思想汇报
2014/09/16 职场文书
毕业生评语大全
2015/01/04 职场文书
工伤劳动仲裁代理词
2015/05/25 职场文书
浅谈如何提高PHP代码质量之单元测试
2021/05/28 PHP
三种方式清除vue路由跳转router-link的历史记录
2022/04/10 Vue.js
Zabbix对Kafka topic积压数据监控的问题(bug优化)
2022/07/07 Servers