pytorch autograd模块介绍
torch.autograd
是 PyTorch 的自动微分模块,用于支持深度学习中的梯度计算和反向传播。它通过记录操作和构建动态计算图,帮助用户自动计算梯度,而不需要手动推导和实现复杂的反向传播逻辑。
autograd 的核心概念
-
张量(Tensor):
- PyTorch 的
Tensor
是计算的基本单元。 - 通过设置张量的
requires_grad=True
,会开启对该张量的梯度跟踪。
- PyTorch 的
import torch
x = torch.tensor([1.0, 2.0, 3.0], requires_grad=True)
y = x ** 2
-
计算图(Computation Graph):
autograd
会动态构建计算图,每个操作都会记录在图中。- 节点表示张量,边表示操作。
- 动态计算图在前向传播时被构建,调用反向传播后被销毁。
-
反向传播(Backward Propagation):
- 调用张量的
.backward()
方法触发反向传播。 - 通过链式法则计算梯度,并存储在
.grad
属性中。
- 调用张量的
y = x.sum() # 标量输出
y.backward