news 2026/9/2 23:52:10

大模型反向传播计算梯度-loss.backward

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
大模型反向传播计算梯度-loss.backward

loss.backward() 是 PyTorch 中反向传播计算梯度的核心函数:
从当前计算出的损失值(loss)出发,沿着神经网络的计算路径 “倒着走”
算出每个可训练参数(比如权重 w、偏置 b)对损失值的影响程度(也就是梯度),为后续更新参数、降低损失做准备

举例

把神经网络训练比作 “调整奶茶配方,让顾客觉得更好喝”:
损失值(loss):代表 “顾客不满意的程度”,数值越大,配方越差
模型参数:比如糖量、茶底比例、奶的用量(对应神经网络的 w/b)
loss.backward():就是 “分析每个参数错在哪、错多少”,从 “顾客不满意” 这个结果倒推:
是糖放多了?茶底太浓了?每个参数需要调整多少才能让顾客更满意(损失值降低)

示例

用最简单的线性模型(y = w*x + b),展示 loss.backward() 在完整训练流程中的位置和效果:

importtorch# 1. 定义参数(w和b是需要训练的参数,requires_grad=True表示要计算梯度)w=torch.tensor([2.0],requires_grad=True)# 初始权重,创建张量(Tensor) 包含数值 2.0 的一维张量b=torch.tensor([1.0],requires_grad=True)# 初始偏置# 2. 模拟输入和真实标签(期望y = 3x + 0,所以当前w/b = 2不对)x=torch.tensor([1.0])y_true=torch.tensor([3.0])# 3. 前向传播:用当前参数计算预测值y_pred=w*x+b# 计算结果:2*1 + 1 = 3?不,这里故意设错,实际我们改下w=1.0更明显w=torch.tensor([1.0],requires_grad=True)# 重新设w=1.0,y_pred=1*1+1=2y_pred=w*x+b# 4. 计算损失(均方误差:(预测值-真实值)²)loss=(y_pred-y_true)**2# loss = (2-3)² = 1.0# 5. 反向传播:计算梯度(核心就是这行!)loss.backward()# 6. 查看计算出的梯度print("w的梯度:",w.grad)# 输出:tensor([-2.]) → 表示w增加,loss会减少(梯度为负)print("b的梯度:",b.grad)# 输出:tensor([-2.]) → 表示b增加,loss会减少

梯度的本质:loss.backward() 计算的梯度,是 “损失函数对每个参数的偏导数”(数学上是 d(loss)/dw、d(loss)/db)
比如 w 的梯度是 - 2,意味着:如果把 w 从 1.0 增加 0.1,loss 会增加 (-2)*0.1,即减少 0.2(loss 从 1.0 变 0.8),这就是参数更新的方向
必须先重置梯度:每次调用 loss.backward() 前,要先用 optimizer.zero_grad() 清空上一批的梯度(比如 w.grad 会累加)
否则梯度叠加,导致参数更新错误
只对可训练参数生效:只有设置了 requires_grad=True 的张量(模型参数默认开启),才会计算梯度;普通的输入 / 输出张量不会计算

# 重置梯度(清空上一批的梯度)optimizer.zero_grad()# 前向传播:算预测值y_pred=model(x)# 算损失:衡量预测和真实值的差距loss=loss_fn(y_pred,y_true)# 反向传播:算每个参数的梯度(核心)loss.backward()# 更新参数:用梯度调整w/b,降低损失optimizer.step()

总结

loss.backward() 的核心是反向计算梯度:从损失值倒推每个参数对损失的影响
它是参数更新的 “前提”:没有这一步,优化器就不知道该往哪个方向调整参数
梯度的意义:告诉我们 “调整参数能让损失降得最快的方向和幅度”

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/29 6:32:41

从已读不回到薪资涨幅30%,这个AI简历优化太狠了

在 2026 年,薪资涨幅不再取决于你的“工龄”,而取决于你简历中[资产动词]的权重。 很多求职者发现,即使自己涨了本事,简历发出去依然是“已读不回”,或者 HR 给出的薪资涨幅极低。这是因为在招聘后台的 AI 筛选算法中&…

作者头像 李华
网站建设 2026/9/2 22:43:05

【计算机毕设】java-springboot+vue“漫画之家”系统毕业设计

💟博主:程序员小俊:CSDN作者、博客专家、全栈领域优质创作者 💟专注于计算机毕业设计,大数据、深度学习、Java、小程序、python、安卓等技术领域 📲文章末尾获取源码数据库 🌈还有大家在毕设选题…

作者头像 李华
网站建设 2026/9/2 17:57:46

用户行为热点:登录峰值测试与优化

‌用户行为热点与登录峰值挑战在数字化时代,用户行为热点如促销活动、节假日或突发事件常引发登录峰值——即系统在短时间内承受高并发用户登录请求。对软件测试从业者而言,这不仅关乎系统稳定性,还直接影响用户体验和业务连续性。据统计&…

作者头像 李华
网站建设 2026/9/2 10:10:25

GNSS与单北斗变形监测技术的应用现状分析与未来发展方向

本文旨在分析GNSS变形监测一体机与单北斗变形监测系统的当前应用现状及未来的发展趋势。从技术特点到市场需求,单北斗变形监测已在基础设施管理中扮演重要角色。重点探讨了单北斗的原理,包括它在桥梁、大坝和地质灾害监测中的应用,及其提供的…

作者头像 李华
网站建设 2026/9/2 18:07:57

【swiftUI】实现智能可收缩日历(单行/全月切换)

一、 核心特性 智能显示模式:收起状态--仅显示当前日期所在的整周(7天);展开状态--显示完整月份的日历网格;平滑的动画过渡效果 数据一致性:始终显示当前月份的数据;收起时自动定位到当前周&am…

作者头像 李华
网站建设 2026/9/2 23:11:29

MemOS开源框架实战:构建基于Graph的记忆图谱,让AI具备长期记忆能力

MemOS是一款基于Graph的记忆开源项目,通过TreeTextMemory实现结构化记忆存储与关联。本文详细介绍了如何在LangChain1.x框架中集成MemOS的记忆图谱能力,包括构建带记忆的ChatBot、体验记忆的自动重组功能,以及通过Middleware机制实现无侵入式…

作者头像 李华