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常用正则表达式符号浅析
Aug 13 Python
Python生成器(Generator)详解
Apr 13 Python
使用Python脚本将文字转换为图片的实例分享
Aug 29 Python
python中set常用操作汇总
Jun 30 Python
Python模块搜索路径代码详解
Jan 29 Python
python3+PyQt5实现拖放功能
Apr 24 Python
Python3.5字符串常用操作实例详解
May 01 Python
python 标准差计算的实现(std)
Jul 29 Python
Python实现图片添加文字
Nov 26 Python
浅谈JupyterNotebook导出pdf解决中文的问题
Apr 22 Python
Tensorflow tensor 数学运算和逻辑运算方式
Jun 30 Python
Django model重写save方法及update踩坑详解
Jul 27 Python
如何使用Python实现一个简易的ORM模型
May 12 #Python
用python删除文件夹中的重复图片(图片去重)
May 12 #Python
Pyhton模块和包相关知识总结
python 下划线的多种应用场景总结
May 12 #Python
超级详细实用的pycharm常用快捷键
pycharm 如何查看某一函数源码的快捷键
教你使用Pandas直接核算Excel中快递费用
You might like
php Static关键字实用方法
2010/06/04 PHP
php短域名转换为实际域名函数
2011/01/17 PHP
onpropertypchange
2006/07/01 Javascript
IE8 chrome中table隔行换色解决办法
2010/07/09 Javascript
判断浏览器的javascript版本的代码
2010/09/03 Javascript
在JS中最常看到切最容易迷惑的语法(转)
2010/10/29 Javascript
javascript动态加载二
2012/08/22 Javascript
Js(JavaScript)中,弹出是或否的选择框示例(confirm用法的实例分析)
2013/07/09 Javascript
GridView中获取被点击行中的DropDownList和TextBox中的值
2013/07/18 Javascript
使用JS CSS去除IE链接虚线框的三种方法
2013/11/14 Javascript
在javascript中执行任意html代码的方法示例解读
2013/12/25 Javascript
jQuery窗口、文档、网页各种高度的精确理解
2014/07/02 Javascript
javascript学习笔记整理(概述、变量、数据类型简介)
2015/10/25 Javascript
JavaScript如何动态创建table表格
2020/08/02 Javascript
Vue.js基础知识小结
2017/01/13 Javascript
jQuery模拟窗口抖动效果
2017/03/15 Javascript
利用vue.js实现被选中状态的改变方法
2018/02/08 Javascript
JS表单传值和URL编码转换
2018/03/03 Javascript
file-loader打包图片文件时路径错误输出为[object-module]的解决方法
2020/01/03 Javascript
详解vite+ts快速搭建vue3项目以及介绍相关特性
2021/02/25 Vue.js
简介Python中用于处理字符串的center()方法
2015/05/18 Python
使用python检测主机存活端口及检查存活主机
2015/10/12 Python
python类中super()和__init__()的区别
2016/10/18 Python
python opencv 批量改变图片的尺寸大小的方法
2019/06/28 Python
Django将默认的SQLite更换为MySQL的实现
2019/11/18 Python
python实现两个一维列表合并成一个二维列表
2019/12/02 Python
Numpy ndarray 多维数组对象的使用
2021/02/10 Python
CSS3 animation ? steps 函数详解
2019/08/30 HTML / CSS
澳大利亚波西米亚风连衣裙在线商店:Fortunate One
2019/04/01 全球购物
中国专业的音频分享平台:喜马拉雅
2019/05/24 全球购物
什么造成了Java里面的异常
2016/04/24 面试题
女生节标语
2014/06/26 职场文书
幼儿园安全工作总结2015
2015/04/20 职场文书
培训心得体会怎么写
2016/01/25 职场文书
优秀共产党员事迹材料2016
2016/02/29 职场文书
Windows环境下实现批量执行Sql文件
2021/10/05 SQL Server