pytorch中的loss.backward()和optimizer.step()中的使用的梯度方向问题

python 复制代码
# 举例:梯度下降更新模型参数
optimizer = torch.optim.SGD(model.parameters(), lr=learning_rate)

# 在每个训练步骤中
optimizer.zero_grad()  # 清零梯度
output = model(input)
loss = loss_function(output, target)
loss.backward()       # 计算梯度
optimizer.step()       # 更新模型参数(沿着梯度的负方向)

在这个例子中,loss.backward() 计算的梯度方向是损失函数上升的方向,而 optimizer.step() 则使用了梯度的负方向来更新模型参数。

相关推荐
weifengma-wish9 小时前
Transformer 注意力为什么用内积? 而不用余弦相识度和cor等
人工智能·深度学习·transformer
AndrewHZ10 小时前
【LLM技术全景】预训练与微调:大模型如何“学习“
人工智能·深度学习·大模型·llm·微调·预训练·rlhf
DeniuHe12 小时前
深度学习中的MLP层
人工智能·深度学习
救救孩子把13 小时前
88-机器学习与大模型开发数学教程-8-6 矩阵分解与低秩近似在推荐系统中的应用
人工智能·机器学习·矩阵
冰西瓜60013 小时前
深度学习的数学原理(四十二)—— 分布式训练
人工智能·分布式·深度学习
CJH(本人账号)13 小时前
【AI安全】大模型安全威胁:Prompt注入与模型防御策略
人工智能·安全·机器学习·语言模型·云计算·prompt
moMo14 小时前
# 不懂机器学习也能玩 NLP?用DeepSeek 跑通四种经典任务
人工智能·机器学习