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

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

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

相关推荐
AKAMAI6 分钟前
预先构建的CNCF流水线:从Git到在Kubernetes上运行
人工智能·云计算
风途知识百科7 分钟前
数字高精度光伏电站灰尘监测系统
人工智能
38242782715 分钟前
python:输出JSON
前端·python·json
学废了wuwu31 分钟前
机器学习模型评估指标完全解析:准确率、召回率、F1分数等
人工智能·机器学习
西西o1 小时前
MindSpeed MM多模态模型微调实战指南
人工智能
也许是_1 小时前
大模型应用技术之 详解 MCP 原理
人工智能·python
Codebee1 小时前
#专访Ooder架构作者|A2UI时代全栈架构的四大核心之问,深度解析设计取舍
人工智能
亚马逊云开发者1 小时前
如何在亚马逊云科技部署高可用MaxKB知识库应用
人工智能
沙漠豪1 小时前
提取PDF发票信息的Python脚本
开发语言·python·pdf