目录
反向传播(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官方推荐的标

本文介绍了如何使用PyTorch进行神经网络的反向传播和参数更新。首先详细讲解了反向传播的过程,特别是通过调用`loss.backward()`来计算梯度。接着,讨论了在执行反向传播前需要清零梯度的重要性,以避免梯度累积。然后,文章展示了如何使用随机梯度下降(SGD)更新网络参数,包括传统的Python实现方式和PyTorch官方推荐的简洁代码实现。
最低0.47元/天 解锁文章

6万+

被折叠的 条评论
为什么被折叠?



