PyTorch深度学习总结
第六章 PyTorch中张量(Tensor)微分操作
文章目录
- PyTorch深度学习总结
- 前言
- 一、torch.autograd模块
- 二、主要功能和使用方法
- 1. 张量的 requires_grad 属性
- 2. backward() 方法
- 3. torch.no_grad() 上下文管理器
- 三、函数总结
前言
上文介绍了PyTorch中张量(Tensor)
的计算
操作,本文将介绍张量
的微分
(torch.autograd
)操作。
一、torch.autograd模块
torch.autograd
是 PyTorch 中用于自动求导
的核心工具包,它提供了自动计算张量梯度的功能。训练模型通常需要计算损失函数关于模型参数的梯度,以便使用优化算法更新参数。
基本原理
torch.autograd
通过构建计算图(computational graph)
来跟踪张量上的所有操作。
计算图
是一个有向无环图(DAG)
,其中节点表示张量,边表示操作。当你对一个张量进行操作时,torch.autograd 会记录这些操作,并构建相应的计算图。
在需要计算梯度时,torch.autograd
会使用反向传播算法(backpropagation)
沿着计算图反向传播,从最终的输出张量开始,逐步计算每个操作的梯度,并累积到需要求梯度的张量上。
二、主要功能和使用方法
1. 张量的 requires_grad 属性
requires_grad
是张量的一个布尔属性,用于指定是否需要对该张量计算梯度。
如果将一个张量的requires_grad
设置为True
,torch.autograd
会跟踪该张量上的所有操作,并在需要时计算梯度。import torch # 创建一个需要计算梯度的张量 x = torch.tensor([1.0, 2.0, 3.0], requires_grad=True