为了高效处理复杂任务,理解 PyTorch 的内部运作机制会有帮助。本章着重讲解基本构成要素:PyTorch 张量、自动求导(autograd)机制以及将它们联系起来的计算图。我们将研究张量的结构和内存管理方式。你会了解到操作执行时 PyTorch 如何动态构建计算图,以及 autograd 引擎如何遍历这些图来计算梯度,例如损失 $L$ 对权重 $w$ 的偏导数 $\frac{\partial L}{\partial w}$。主要内容包括:torch.Tensor 的内部结构。动态计算图的创建和使用方式。autograd 引擎在反向传播过程中的逐步操作。通过 torch.autograd.Function 定义 forward 和 backward 方法来实现自定义操作。计算高阶梯度。检查梯度和可视化计算图的方法。PyTorch 中高效内存使用的注意事项。熟悉这些核心组成部分对于调试复杂模型、优化性能以及实现标准库之外的自定义功能都十分有益。最后,我们将通过一个实践练习来构建自己的 autograd 函数。