Skip to Content
PyTorch 口袋参考手册
book

PyTorch 口袋参考手册

by Joe Papa
May 2025
Intermediate to advanced
310 pages
3h 16m
Chinese
O'Reilly Media, Inc.
Content preview from PyTorch 口袋参考手册

第 2 章 张量 张量

本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com

在我们深入 PyTorch 开发世界之前,熟悉 PyTorch 的基本数据结构很重要:torch.Tensor 。通过了解张量,您将了解 PyTorch 如何处理和存储数据,由于深度学习从根本上说是浮点数的收集和操作,因此了解张量将有助于您理解 PyTorch 如何为深度学习实现更高级的函数。此外,在模型开发过程中预处理输入数据或操作输出数据时,你可能会发现自己经常使用张量运算。

本章是了解张量和在代码中实现张量函数的快速参考。首先,我将介绍什么是张量,并举例说明如何使用函数在 GPU 上创建、操作和加速张量运算。接下来,我们将更广泛地了解用于创建张量和执行数学运算的 API,以便您能快速参考张量功能的综合列表。在每一节中,我们将探讨一些更重要的函数,找出常见的陷阱,并研究其使用要点。

什么是张量?

在 PyTorch 中,张量是一种用于存储和操作数据的数据结构。 与 NumPy 数组一样,张量是一个包含单一数据类型元素的多维数组。张量可用于表示标量、向量、矩阵和n 维数组,并派生于torch.Tensor 类。然而,张量不仅仅是数字数组。从torch.Tensor 类创建或实例化一个张量对象后,我们就可以访问一组内置类属性和操作或类方法,它们提供了一组强大的内置功能。本章将详细介绍这些属性和操作。

张量还包括一些附加优势,使其比 NumPy 数组更适合深度学习计算。首先,使用 GPU 加速,张量运算的速度可以大大加快。其次,可以在多个 CPU 和 GPU 以及多个服务器上使用分布式处理技术大规模存储和操作张量。第三,张量可以跟踪其图形计算,正如我们将在"自动微分(Autograd)"中看到的,这对于实现深度学习库非常重要。

为了进一步解释什么是张量以及如何使用张量,我将首先通过一个简单的示例来说明,该示例将创建一些张量并执行张量操作。

简单的 CPU 示例

下面是一个创建张量、执行张量操作并在张量本身使用内置方法的简单示例。默认情况下,张量数据类型将从输入数据类型派生,并且张量将分配给 CPU 设备。首先,我们导入 PyTorch 库,然后从二维列表中创建两个张量xy 。然后,我们将两个张量相加,并将结果存储在z 中。因为torch.Tensor 类支持运算符重载,所以我们可以在这里使用+ 运算符。最后,我们打印出新的张量z ,可以看到它是xy 的矩阵和,并打印出z 的大小。注意z 本身就是一个张量对象,size() 方法用于返回它的矩阵维数,即 2 × 3:

import torch

x = torch.tensor([[1,2,3],[4,5,6]])
y = torch.tensor([[7,8,9],[10,11,12]])
z = x + y
print(z)
# out:
#  tensor([[ 8, 10, 12],
#          [14, 16, 18]])

print(z.size())
# out: torch.Size([2, 3])
备注

您可能会在传统代码中看到torch.Tensor() (大写 T)构造函数。这是默认张量类型torch.FloatTensor 的别名。您应该使用torch.tensor() 来创建张量。

简单的 GPU 示例

与 NumPy 数组相比,在 GPU 上加速张量运算的能力是张量的一大优势,因此我将向大家展示一个简单的示例。这与上一节中的示例相同,但这里我们将张量移动到 ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

金融人工智能:用Python实现AI量化交易

金融人工智能:用Python实现AI量化交易

Yves Hilpisch
容器安全

容器安全

Liz Rice

Publisher Resources

ISBN: 9798341658790