PyTorch 基础

17 Mar 2025 | 4 分钟阅读

理解使用 PyTorch 所需的所有基本概念至关重要。PyTorch 完全基于张量。张量具有执行操作。除此之外,还有许多其他概念是执行任务所必需的。

Basics of PyTorch

现在,逐个理解所有概念,以获得对 PyTorch 的深入了解。

矩阵或张量

张量是 Pytorch 的关键组成部分。我们可以说 PyTorch 完全基于张量。在数学术语中,数字的矩形数组称为度量。在 Numpy 库中,这些度量称为 ndarray。在 PyTorch 中,它被称为 Tensor。张量是一个 n 维数据容器。例如,在 PyTorch 中,1d-Tensor 是一个向量,2d-Tensor 是一个度量,3d-Tensor 是一个立方体,而 4d-Tensor 是一个立方体向量。

Basics of PyTorch

以上度量表示具有三行两列的 2D-Tensor。

有三种创建 Tensor 的方法。每一种都有不同的创建 Tensor 的方法。张量创建如下

  1. 创建一个 PyTorch 张量数组
  2. 创建一个全为 1 和随机数的张量
  3. 从 numpy 数组创建张量

让我们看看如何创建张量

创建一个 PyTorch 张量作为数组

在此中,您首先需要定义数组,然后将该数组传递到 torch 的 Tensor 方法中作为参数。

例如

输出

tensor ([[3., 4.],[8., 5.]])

Basics of PyTorch

创建一个具有随机数和全为 1 的张量

要创建一个随机数张量,您必须使用 rand() 方法,并且要创建一个全为 1 的张量,您必须使用 torch 的 ones() 方法。为了生成随机数,将使用 torch 的另一个方法,即 manual_seed,参数为 0。

例如

输出

Tensor ([[1., 1.],[1., 1.]])
tensor ([[0.4963, 0.7682],[0.0885, 0.1320]])

Basics of PyTorch

从 numpy 数组创建张量

要从 numpy 数组创建张量,我们必须创建一个 numpy 数组。创建 numpy 数组后,我们必须将其作为参数传递给 from_numpy()。此方法将 numpy 数组转换为张量。

例如

输出

[[1. 1.] [1. 1.]]

Basics of PyTorch

张量运算

张量类似于数组,因此我们对数组执行的所有操作也可以应用于张量。

Basics of PyTorch

1) 调整张量大小

我们可以使用张量的 size 属性来调整张量的大小。我们使用 Tensor.view() 来调整张量的大小。调整张量的大小意味着将 2*2 维张量转换为 4*1 或 4*4 维张量转换为 16*1 等等。要打印张量大小,我们使用 Tensor.size() 方法。

让我们看一个调整张量大小的例子。

输出

torch.Size ([2, 2])
tensor ([1., 1., 1., 1.])

Basics of PyTorch

2) 数学运算

所有数学运算,如加法、减法、除法和乘法,都可以在张量上执行。torch 可以进行数学运算。我们使用 torch.add()、torch.sub()、torch.mul() 和 torch.div() 对张量执行操作。

让我们看一个例子,说明如何执行数学运算

输出

tensor ([[2., 2.], [2., 2.]])
tensor ([[2., 2.], [2., 2.]])

Basics of PyTorch

3) 均值和标准差

我们可以计算张量的标准差,无论是对于一维还是多维。在我们的数学计算中,我们首先要计算均值,然后将以下公式应用于给定数据,并取均值。

Basics of PyTorch

但在张量中,我们可以使用 Tensor.mean() 和 Tensor.std() 来找到给定张量的偏差和均值。

让我们看一个例子,说明它是如何执行的。

输出

tensor (3.)
tensor (1.5811)

Basics of PyTorch

变量和梯度

该软件包的核心类是 autograd.variable。它的主要任务是包装一个 Tensor。它支持在其上定义几乎所有操作。您可以在完成计算后调用 .backword() 并计算所有梯度。

通过 .data 属性,您可以访问行张量,而此变量的梯度将累积到 .grad 中。

Basics of PyTorch

在深度学习中,梯度计算是关键点。变量用于在 PyTorch 中计算梯度。简单来说,变量只是张量的包装器,具有梯度计算功能。

以下是用于管理变量的 python 代码。

上面的代码行为与张量相同,因此我们可以以相同的方式应用所有操作。

Basics of PyTorch

让我们看看如何在 PyTorch 中计算梯度。

示例

输出

tensor([20.])

Basics of PyTorch