Pytorch中的一维张量

PyTorch 是一个基于 Python 语言的开源深度学习框架。它允许您构建、训练和部署深度学习模型,提供了极大的灵活性和效率。

PyTorch 主要关注张量运算,而张量可以是数字、矩阵或多维数组。

在本教程中,我们将执行一些一维张量的基本运算,因为它们是复杂的数学对象,也是 PyTorch 库的重要组成部分。因此,在深入研究细节和更高级的概念之前,应该先掌握基础知识。

完成本教程后,您将

  • 了解 PyTorch 中一维张量运算的基础知识。
  • 了解张量类型和形状,并执行张量切片和索引操作。
  • 能够对张量对象应用一些方法,例如均值、标准差、加法、乘法等。

通过我的《用PyTorch进行深度学习》一书来启动你的项目。它提供了包含可用代码自学教程


让我们开始吧。

Pytorch中的一维张量
图片来自 Jo Szczepanska。保留部分权利。

一维张量的类型和形状

首先,让我们导入本教程中将使用的一些库。

如果您有其他编程语言的经验,理解张量最简单的方法是将其视为多维数组。因此,一维张量就是一个一维数组,或称为向量。要将整数列表转换为张量,请使用 torch.tensor() 构造函数。例如,我们将采用一个整数列表并将其转换为各种张量对象。

您也可以使用相同的 torch.tensor() 方法将浮点列表转换为浮点张量。

请注意,需要转换为张量的列表元素必须具有相同的类型。此外,如果您想将列表转换为特定的张量类型,PyTorch 也允许您这样做。例如,以下代码行会将整数列表转换为浮点张量。

同样,size()ndimension() 方法允许您查找张量对象的尺寸和维度。

要重塑张量对象,可以使用 view() 方法。它接受 作为参数。例如,让我们使用此方法重塑 int_list_to_float_tensor

如您所见,view() 方法已将张量的大小更改为 torch.Size([4, 1]),具有 4 行和 1 列。

虽然在应用 view() 方法后张量对象中的元素数量应保持不变,但您可以使用 -1(例如 reshaped_tensor.view(-1, 1))来重塑动态大小的张量。

将 NumPy 数组转换为张量

PyTorch 也允许您将 NumPy 数组转换为张量。您可以使用 torch.from_numpy 执行此操作。让我们采用一个 NumPy 数组并应用此操作。

同样,您可以将张量对象转换回 NumPy 数组。让我们使用前面的示例来展示如何完成。

将 Pandas Series 转换为张量

您也可以将 pandas Series 转换为张量。为此,首先需要使用 NumPy 数组和 values() 函数存储 pandas Series。

此外,PyTorch 框架允许我们对张量进行许多操作,例如它的 item() 方法可以从张量中返回一个 Python 数字,而 tolist() 方法返回一个列表。

一维张量的索引和切片

PyTorch 中的索引和切片操作与 Python 中的几乎相同。因此,第一个索引始终从 0 开始,最后一个索引小于张量的总长度。使用方括号访问张量中的任何数字。

就像 Python 中的列表一样,您也可以对张量中的值执行切片操作。此外,PyTorch 库还允许您更改张量中的某些值。

让我们举个例子来看看如何应用这些操作。

现在,让我们更改 example_tensor 索引 3 处的值。

想开始使用PyTorch进行深度学习吗?

立即参加我的免费电子邮件速成课程(附示例代码)。

点击注册,同时获得该课程的免费PDF电子书版本。

可应用于一维张量的一些函数

在本节中,我们将回顾一些可以应用于张量对象的统计方法。

最小和最大函数

这两个有用的方法用于查找张量中的最小值和最大值。它们的工作方式如下。

我们将使用 sample_tensor 作为示例来应用这些方法。

均值和标准差

均值和标准差常用于对张量进行统计运算。您可以使用 PyTorch 中的 .mean().std() 函数来应用这两个指标。

让我们用一个例子来看看这两个指标是如何计算的。

一维张量的简单加法和乘法运算

在 PyTorch 中,可以轻松地对张量应用加法和乘法运算。在本节中,我们将创建两个一维张量来演示如何使用这些运算。

为了方便起见,上面所有的例子都已汇总,您可以一次性尝试。

进一步阅读

PyTorch 与 TensorFlow 同时开发,曾经拥有更简单的语法,直到 TensorFlow 在其 2.x 版本中采用了 Keras。要学习 PyTorch 的基础知识,您可能想阅读 PyTorch 教程。

特别是 PyTorch 张量的基础知识可以在 Tensor 教程页面找到。

还有不少关于 PyTorch 的书籍适合初学者。应该推荐一本最近出版的书,因为工具和语法都在积极发展。一个例子是

总结

在本教程中,您已经了解了如何在 PyTorch 中使用一维张量。

具体来说,你学到了:

  • PyTorch 中一维张量运算的基础知识
  • 关于张量类型和形状,以及如何执行张量切片和索引操作
  • 如何对张量对象应用一些方法,例如均值、标准差、加法和乘法

开始使用PyTorch进行深度学习!

Deep Learning with PyTorch

学习如何构建深度学习模型

...使用新发布的PyTorch 2.0库

在我的新电子书中探索如何实现
使用 PyTorch进行深度学习

它提供了包含数百个可用代码自学教程,让你从新手变成专家。它将使你掌握:
张量操作训练评估超参数优化等等...

通过动手练习开启你的深度学习之旅


查看内容

4 条回复 PyTorch 中的一维张量

  1. Kevin 2021年12月31日 上午5:42 #

    精彩的文章!感谢您撰写此主题。

    • James Carmichael 2021年12月31日 上午10:07 #

      不客气,Kevin!

  2. James Carmichael 2022年1月7日 上午6:21 #

    谢谢!

留下回复

Machine Learning Mastery 是 Guiding Tech Media 的一部分,Guiding Tech Media 是一家领先的数字媒体出版商,专注于帮助人们了解技术。访问我们的公司网站以了解更多关于我们的使命和团队的信息。