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

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

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

相关推荐
云浪几秒前
如何让大模型操作 MySQL 数据库?
javascript·人工智能·后端
黑马水牛几秒前
Carla仿真系列:10_Carla 双目障碍物测距,视差图还原真实距离
python·计算机视觉·ros·双目·carla仿真
SamChan902 分钟前
PDF 翻译服务的全链路可观测性设计:OpenTelemetry + Jaeger + Loki 实战方案
后端·python·pdf·机器翻译
小睿科技2 分钟前
建筑AI睿兔大脑 | 工程造价AI化的技术路线:谁在真正解决算量痛点
人工智能
luckystar513~3 分钟前
LLM那些事(二):LLM训练三阶段——从会接龙,到会听话,到会思考
人工智能
AI工具测评家4 分钟前
论文AI率和重复率双降怎么做?拆解AIGC降重底层技术与实操方法
人工智能·aigc·降重·ai检测·查重·降ai
故七月4 分钟前
基于最新Geo数据的测评行业服务商分析——万域智瞰深度洞察
大数据·人工智能
我的xiaodoujiao5 分钟前
Django 基础知识详细图文教程 1-Django 介绍
后端·python·学习·测试工具·django
weixin_469163695 分钟前
从提示词到驾驭工程:金融 AI 需求工程的三段式演进路径
大数据·人工智能·金融