PyTorch 基础17 Mar 2025 | 4 分钟阅读 理解使用 PyTorch 所需的所有基本概念至关重要。PyTorch 完全基于张量。张量具有执行操作。除此之外,还有许多其他概念是执行任务所必需的。 ![]() 现在,逐个理解所有概念,以获得对 PyTorch 的深入了解。 矩阵或张量张量是 Pytorch 的关键组成部分。我们可以说 PyTorch 完全基于张量。在数学术语中,数字的矩形数组称为度量。在 Numpy 库中,这些度量称为 ndarray。在 PyTorch 中,它被称为 Tensor。张量是一个 n 维数据容器。例如,在 PyTorch 中,1d-Tensor 是一个向量,2d-Tensor 是一个度量,3d-Tensor 是一个立方体,而 4d-Tensor 是一个立方体向量。 ![]() 以上度量表示具有三行两列的 2D-Tensor。 有三种创建 Tensor 的方法。每一种都有不同的创建 Tensor 的方法。张量创建如下
让我们看看如何创建张量 创建一个 PyTorch 张量作为数组在此中,您首先需要定义数组,然后将该数组传递到 torch 的 Tensor 方法中作为参数。 例如 输出 tensor ([[3., 4.],[8., 5.]]) ![]() 创建一个具有随机数和全为 1 的张量要创建一个随机数张量,您必须使用 rand() 方法,并且要创建一个全为 1 的张量,您必须使用 torch 的 ones() 方法。为了生成随机数,将使用 torch 的另一个方法,即 manual_seed,参数为 0。 例如 输出 Tensor ([[1., 1.],[1., 1.]]) tensor ([[0.4963, 0.7682],[0.0885, 0.1320]]) ![]() 从 numpy 数组创建张量要从 numpy 数组创建张量,我们必须创建一个 numpy 数组。创建 numpy 数组后,我们必须将其作为参数传递给 from_numpy()。此方法将 numpy 数组转换为张量。 例如 输出 [[1. 1.] [1. 1.]] ![]() 张量运算张量类似于数组,因此我们对数组执行的所有操作也可以应用于张量。 ![]() 1) 调整张量大小我们可以使用张量的 size 属性来调整张量的大小。我们使用 Tensor.view() 来调整张量的大小。调整张量的大小意味着将 2*2 维张量转换为 4*1 或 4*4 维张量转换为 16*1 等等。要打印张量大小,我们使用 Tensor.size() 方法。 让我们看一个调整张量大小的例子。 输出 torch.Size ([2, 2]) tensor ([1., 1., 1., 1.]) ![]() 2) 数学运算所有数学运算,如加法、减法、除法和乘法,都可以在张量上执行。torch 可以进行数学运算。我们使用 torch.add()、torch.sub()、torch.mul() 和 torch.div() 对张量执行操作。 让我们看一个例子,说明如何执行数学运算 输出 tensor ([[2., 2.], [2., 2.]]) tensor ([[2., 2.], [2., 2.]]) ![]() 3) 均值和标准差我们可以计算张量的标准差,无论是对于一维还是多维。在我们的数学计算中,我们首先要计算均值,然后将以下公式应用于给定数据,并取均值。 ![]() 但在张量中,我们可以使用 Tensor.mean() 和 Tensor.std() 来找到给定张量的偏差和均值。 让我们看一个例子,说明它是如何执行的。 输出 tensor (3.) tensor (1.5811) ![]() 变量和梯度该软件包的核心类是 autograd.variable。它的主要任务是包装一个 Tensor。它支持在其上定义几乎所有操作。您可以在完成计算后调用 .backword() 并计算所有梯度。 通过 .data 属性,您可以访问行张量,而此变量的梯度将累积到 .grad 中。 ![]() 在深度学习中,梯度计算是关键点。变量用于在 PyTorch 中计算梯度。简单来说,变量只是张量的包装器,具有梯度计算功能。 以下是用于管理变量的 python 代码。 上面的代码行为与张量相同,因此我们可以以相同的方式应用所有操作。 ![]() 让我们看看如何在 PyTorch 中计算梯度。 示例输出 tensor([20.]) ![]() |
我们请求您订阅我们的新闻通讯以获取最新更新。