趋近智
有效地训练神经网络 (neural network)需要调整模型参数 (parameter)以最小化损失函数 (loss function),这通常使用梯度下降 (gradient descent)或其变体。这个过程的主要部分是计算损失函数相对于每个参数的梯度,数学上表示为损失 和参数 的 。对于复杂模型,手动推导和实现这些梯度计算是不切实际的。
本章介绍 PyTorch 的自动微分引擎 Autograd,它旨在自动计算这些梯度。我们将了解 PyTorch 如何在对张量执行操作时动态构建计算图。你将学习如何使用 requires_grad=True 标记 (token)张量以进行梯度计算,使用 .backward() 触发反向传播 (backpropagation)以计算梯度,以及查看存储在 .grad 属性中的结果梯度。我们还将涉及梯度累积,使用 optimizer.zero_grad() 清零梯度的必要性,以及如何使用 torch.no_grad() 等上下文 (context)临时禁用梯度计算,以提高推理 (inference)或评估期间的效率。
3.1 自动微分的原理
3.2 PyTorch 计算图
3.3 张量与梯度计算 (`requires_grad`)
3.4 执行反向传播 (`backward()`)
3.5 访问梯度(`.grad`)
3.6 禁用梯度追踪
3.7 梯度累积
3.8 动手实践:Autograd 运用