Pytorch里面参数更新前为什么要梯度手动置为0?

因为在一般情况下,每次minibatch之后,都会计算得到一个loss,进而计算该loss关于全局参数的梯度。如果在下一次minibatch 进入模型,计算得到相应的loss和梯度之前,不对优化器的梯度进行置0操作,那么几次batch的梯度会有一个累积效应,影响模型参数的优化。

在每一次batch'训练完之后,计算得到loss损失函数和相应梯度,都会对模型参数进行调整,那么该batch数据在这一轮训练里面的作用已经完成了。我们不希望这些优化过模型参数的batch的loss梯度累积起来,继续对模型参数优化产生影响。

相关推荐
蓝桉~MLGT1 分钟前
语音陪伴助手
人工智能·语音识别
数据皮皮侠2 分钟前
全国消协智慧 315 平台投诉信息数据库
大数据·人工智能·算法·百度·制造
ting94520007 分钟前
Fundraisly 融资定向 AI 智能体全栈技术深度剖析
人工智能·架构
清水白石0088 分钟前
从打印对象到高质量调试:彻底理解 Python 中 `__repr__` 和 `__str__` 的区别
开发语言·python
Aqoo9 分钟前
AI抢工作这笔账终于有人认真算了
人工智能·openai
路人甲32610 分钟前
SONIC: Supersizing Motion Tracking for Natural Humanoid Whole-Body Control
人工智能·深度学习·计算机视觉·机器人·具身智能
DogDaoDao10 分钟前
【GitHub】AutoGPT 深度技术解析:开源自主 AI Agent 平台架构全解
人工智能·程序员·开源·github·ai编程·ai agent·智能体
qingyulee10 分钟前
卷积神经网络基础
人工智能·神经网络·cnn
湘美书院--湘美谈教育11 分钟前
湘美谈教育AI经验集锦:细分领域的标准定义者
大数据·人工智能·深度学习
把你拉进白名单11 分钟前
5.OpenClaw源码解析_提示词8层装载
人工智能·agent