在深度学习中,反向传播(backpropagation)是训练模型的核心算法之一,而PyTorch中的`backward()`函数正是实现这一过程的关键工具。当你调用`.backward()`时,PyTorch会自动计算损失函数对模型参数的梯度,并存储在每个张量的`.grad`属性中。
首先,确保你的张量设置了`requires_grad=True`,这样才能跟踪其计算历史。例如:
```python
x = torch.tensor([1.0], requires_grad=True)
```
接着,定义一个简单的损失函数,比如均方误差(MSE),然后调用`.backward()`:
```python
loss = (x 2).sum()
loss.backward()
print(x.grad) 输出梯度值
```
值得注意的是,`.backward()`会累加梯度,因此如果需要重新计算梯度,请记得使用`zero_()`清零:
```python
x.grad.zero_()
```
此外,在多线程或多GPU场景下,需注意梯度同步问题。掌握好这些技巧,你就能高效地训练神经网络啦!💪
深度学习 PyTorch 反向传播