目录
反向传播(backpropagation)
- Pytorch进行反向传播的操作就是 loss.backward
- 在执行反向传播前应先将梯度清零,以免梯度在不同的批次数据间累加
#pytorch执行梯度清零 net.zero_grad() print('conv1.bias.grad before backward') print(net.conv1.bias.grad) #pytorch中执行反向传播 loss.backward() print('conv1.bias.grad before backward') print(net.conv1.bias.grad)
输出结果
更新网络参数
- 更新参数最简单的方法是SGD(随机梯度下降)
- 表达式为weight-=weigt-learning_rate * gradient
- 首先用传统Python代码实现SGD
learning_rate=0.01
for f in net.parameters():
f.data.sub_(f.grad.data*learning_rate)
- Pytorch官方推荐的标