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