14 Torch中梯度的计算
Torch中的梯度计算
torch中训练顺序大致如下:
1、optimizer.zero_grad() # 将模型的参数梯度初始化为0
2、outputs=model(inputs) # 前向传播计算预测值
3、loss = cost(outputs, y_train) # 计算当前损失
4、loss.backward() # 反向传播计算梯度
5、optimizer.step() # 更新所有参数
注:根据 pytorch 中 backward()函数的计算,当网络参量进行反馈时,梯度是累积计算而不是被替换,因此需要对每个 batch 调用一遍 zero_grad()将参数梯度置0.