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