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

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

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

相关推荐
MediaTea几秒前
Pandas 操作指南(二):数据选取与条件筛选
人工智能·python·机器学习·数据挖掘·pandas
萤萤七悬5 分钟前
【人工智能训练师3级】考试准备(2026)四、简答题 1.2.1-1.2.5
人工智能
小陈工5 分钟前
Python Web开发入门(十二):使用Flask-RESTful构建API——让后端开发更优雅
开发语言·前端·python·安全·oracle·flask·restful
永霖光电_UVLED7 分钟前
当前 AR 眼镜显示技术面临的“人类视觉因素”瓶颈与半导体全息调制器
人工智能·架构
MediaTea8 分钟前
AI 术语通俗词典:协方差
人工智能
无心水9 分钟前
20、Spring陷阱:Feign AOP切面为何失效?配置优先级如何“劫持”你的设置?
java·开发语言·后端·python·spring·java.time·java时间处理
chenglin01611 分钟前
AI应用性能优化与生产环境部署
人工智能·性能优化
mit6.82411 分钟前
量子计算
人工智能
中金快讯11 分钟前
济民健康医疗服务占比提升至46%!业务结构调整初见成效
大数据·人工智能
南湖北漠15 分钟前
记录生活中的一件小事(佚名整理)
网络·人工智能·计算机网络·其他·安全·生活