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

Qwen3-32B-Chat 私有部署镜像 | RTX4090D 24G 显存 CUDA12.4 优化版

Qwen3-32B-Chat 私有部署镜像 | RTX4090D 24G 显存 CUDA12.4 优化版

Qwen
文本生成
Qwen3

本镜像基于 RTX 4090D 24GB 显存 + CUDA 12.4 + 驱动 550.90.07 深度优化,内置完整运行环境与 Qwen3-32B 模型依赖,开箱即用。

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

举例

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

示例

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

import torch

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

您可能感兴趣的与本文相关的镜像

Qwen3-32B-Chat 私有部署镜像 | RTX4090D 24G 显存 CUDA12.4 优化版

Qwen3-32B-Chat 私有部署镜像 | RTX4090D 24G 显存 CUDA12.4 优化版

Qwen
文本生成
Qwen3

本镜像基于 RTX 4090D 24GB 显存 + CUDA 12.4 + 驱动 550.90.07 深度优化,内置完整运行环境与 Qwen3-32B 模型依赖,开箱即用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值