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() 则使用了梯度的负方向来更新模型参数。

相关推荐
eric-sjq8 小时前
10 分钟实战:用 0.6B 本地模型生成中文网页(WanlyFrontend + 编译器全流程)
javascript·机器学习·自然语言处理·html
满怀冰雪11 小时前
19-图像数据处理:PaddleVision Transform 实战
人工智能·深度学习·计算机视觉·paddle
kaixin_啊啊14 小时前
test_机器学习算法学习
学习·算法·机器学习
liulilittle14 小时前
MOE路由:路由(logits: top-k/8)
c++·人工智能·算法·机器学习·llm
Eloudy15 小时前
从 vega 64 到 MI 100 ,AMD GPU 的裂变历史
人工智能·深度学习·gpu
余生皆假期-16 小时前
傅里叶变换和拉普拉斯变换
人工智能·算法·机器学习
weixin_4462608518 小时前
超越Top-K:用可解释智能体操作替代黑盒检索
大数据·人工智能·机器学习
Lee_jerome18 小时前
python神经网络编程入门(三十)——Transformer 从 RNN 到注意力:模型为什么需要“瞄一眼“
rnn·深度学习·nlp·transformer·attention·注意力机制·序列建模
暴躁的小鸟19 小时前
附近口碑好的斜视配镜训练的眼视光中心
人工智能·python·深度学习