每次看到“梯度是累加的,所以需要清除梯度”这句话都感觉云里雾里,貌似懂了实际没懂,原来竟是这么简单的意思!

1、直接上代码:

import torchx = torch.Tensor([1, 2, 3])
x.requires_grad_()
print(x)
y = x**2# 连续调用backward时,需要retain_graph=True确保计算图暂时不被释放
y.sum().backward(retain_graph=True)
print(x.grad)
y.sum().backward()
print(x.grad)  # 如果梯度不归零的话,梯度是累加的

运行结果是:

tensor([1., 2., 3.], requires_grad=True)
tensor([2., 4., 6.])
tensor([ 4.,  8., 12.])

第一次调用backward反向传播,结果是(2 4 6),中间没有梯度清零,第二次调用backward反向传播,又有了一波结果(2 4 6),加在之前的结果上就得了(4 8 12)

2、接下来,我们在两次调用之间加一个梯度清零操作看看:

import torchx = torch.Tensor([1, 2, 3])
x.requires_grad_()
print(x)
y = x**2y.sum().backward(retain_graph=True)  # 连续调用backward时,需要retain_graph=True确保计算图暂时不被释放
print(x.grad)
x.grad.zero_()
y.sum().backward()
print(x.grad)  # 如果梯度不归零的话,梯度是累加的

运行结果是:

tensor([1., 2., 3.], requires_grad=True)
tensor([2., 4., 6.])
tensor([2., 4., 6.])

梯度累加是什么意思-详解相关推荐

  1. python中backward_pytorch的梯度计算以及backward方法详解

    基础知识 tensors: tensor在pytorch里面是一个n维数组.我们可以通过指定参数reuqires_grad=True来建立一个反向传播图,从而能够计算梯度.在pytorch中一般叫做d ...

  2. python中累加函数_对Python实现累加函数的方法详解

    对Python实现累加函数的方法详解 发布时间:2020-10-26 00:02:44 来源:脚本之家 阅读:120 作者:岚漾忆雨 这个需求比较奇怪,要求实现Sum和MagaSum函数,实现以下功能 ...

  3. 残差连接 (及 梯度消失 网络退化)详解

    本文就说说用残差连接解决梯度消失和网络退化的问题. 一.背景 1)梯度消失问题 我们发现很深的网络层,由于参数初始化一般更靠近0,这样在训练的过程中更新浅层网络的参数时,很容易随着网络的深入而导致梯度 ...

  4. 机器学习--详解基于梯度下降的Logistic回归算法原理

    先给出Logistic回归的sigmod函数数学表达式: 很简单的表达式,再看看它的性质,当时,,因此 当时,,因此 Logistic回归之所以称为Logistic是因为只有两个状态即0和1,这也是数 ...

  5. 梯度消失和梯度爆炸问题及其解决方法详解

    梯度不稳定概念和解决方法 梯度消失和梯度爆炸问题 概念 原理详解 解决方法 更改激活函数(Relu.Leaky-Relu.P-Relu等) 权重初始化 加入BN层(Batch Normalizatio ...

  6. 深度学习优化函数详解(5)-- Nesterov accelerated gradient (NAG) 优化算法

    深度学习优化函数详解系列目录 深度学习优化函数详解(0)– 线性回归问题 深度学习优化函数详解(1)– Gradient Descent 梯度下降法 深度学习优化函数详解(2)– SGD 随机梯度下降 ...

  7. 深度学习优化函数详解(5)-- Nesterov accelerated gradient (NAG)

    深度学习优化函数详解系列目录 本系列课程代码,欢迎star: https://github.com/tsycnh/mlbasic 深度学习优化函数详解(0)-- 线性回归问题 深度学习优化函数详解(1 ...

  8. GBDT!深入浅出详解梯度提升决策树

    AI有道 一个有情怀的公众号 1 Adaptive Boosted Decision Tree Random Forest的算法流程我们之前已经详细介绍过,就是先通过bootstrapping&quo ...

  9. 方向梯度直方图(Histogram Of Gradient)详解

    特征描述子(Feature Descriptor) 特征描述子就是图像的表示,抽取了有用的信息,丢掉了不相关的信息.通常特征描述子会把一个w*h*3(宽高3,3个channel)的图像转换成一个长度为 ...

最新文章

  1. Eclipse启动之二:Eclipse动态库(百度空间迁移)
  2. 全球气候变迁 物联网技术为农业保驾护航
  3. 【愣锤笔记】基于vue的进阶散点干货
  4. 乐山计算机学校新歌王,星歌王第二季乐山市计算机学校专场赛决赛完美落幕!...
  5. lda 协方差矩阵_数据降维算法总结(LDAamp;PCA)
  6. 友好的可视化工具——trelliscope
  7. iOS - 苹果审核被拒3.2(f)
  8. STM32学习笔记(5) 串口通讯-接收与发送
  9. 键盘钢琴软件v1.0.1.0官方pc版
  10. 告别公共网盘,用闲置电脑或个人工作PC建立私有云超级网盘!
  11. 【新书推荐】卡神之路,不过如此
  12. luogu P1600 天天爱跑步
  13. 构建智慧城市管理体系,京东方智慧物联平台赋能细分场景
  14. 力扣417 太平洋大西洋水流问题
  15. Swift —— 属性
  16. 广电系统三八红旗集体推荐材料_三八红旗集体事迹材料8篇(医院)
  17. 计算机算的快,计算神速 ——人脑的计算速度比计算机还快?
  18. Win10 Python 3.7全流程安装教程及详细解释
  19. txt转换epub如何转?你将在这篇文章里找到答案
  20. java 图片拼接_java 拼接文字和图片

热门文章

  1. OSSIM开源安全信息管理系统(六)
  2. 常用计算机英文缩写,计算机常用英文缩写
  3. Java:实现Ternary search三元搜索算法(附完整源码)
  4. java启动项目出现The Tomcat connector configured to listen on port 7014 failed to start. The port may alrea
  5. 赶紧收藏!网上疯传的150个ChatGPT「超级提问模型」,都在这里了
  6. MySQL8版本 Win10忘记密码
  7. EI会议论文被检索难度评定
  8. 转换上课周次字符串(我带着困惑我一周之久的编程题来了)
  9. 2008中国IC十佳(七):深圳芯邦冲刺创业板
  10. 关于Mac共享WiFi网络,看这里就够了(2 4G,5G , ipv6)