5 只生成张量基础之张量的定义与构造
在上一篇文章中,我们讨论了如何配置环境以便顺利使用 PyTorch 进行深度学习的开发。现在,我们要深入了解 PyTorch 中的核心概念之一:张量(Tensor)。这一篇将集中讲解张量的定义和构造。
什么是张量
在计算机科学和深度学习中,张量是用于存储数据的基本数据结构。可以把它视为一个多维的数组。不同于常规的 Python 数据结构,张量能有效地进行计算,尤其在 GPU(图形处理单元)上。
张量的维度
- 标量(0维张量): 单个值,例如 $x = 3$。
- 向量(1维张量): 一维数组,例如 $x = [1, 2, 3]$。
- 矩阵(2维张量): 二维数组,例如 $x = [[1, 2], [3, 4]]$。
- 高维张量: 维度高于2的数组,例如一个3D数组可以表示为 $x = [[[1, 2], [3, 4]], [[5, 6], [7, 8]]]$。
张量的构造
在 PyTorch 中,构造张量的方法非常灵活,下面将介绍几种常见的构造方式。
1. 从列表或数组构造张量
最直接的方式是使用 torch.tensor
函数来从已有的 Python 列表或 NumPy 数组中构造张量。
1 | import torch |
2. 使用 PyTorch 提供的构造函数
PyTorch 提供了一些特定用途的张量构造函数,例如:
torch.zeros
:构建全为零的张量torch.ones
:构建全为一的张量torch.empty
:构建未初始化的张量torch.arange
:构建一个指定范围的均匀间隔的一维张量torch.linspace
:构建一个指定起始点和结束点的均匀分布的一维张量
1 | # 构建全为零的二维张量 |
3. 指定数据类型和设备
创建张量的时候,可以指定数据类型和设备(CPU或GPU)。例如:
1 | # 创建一个浮点类型的张量 |
4. 随机生成张量
在深度学习中,常常需要随机初始化张量。PyTorch 也提供了方便的方法。
1 | # 创建一个随机张量 |
小结
在这一部分的教程中,我们介绍了 PyTorch 中张量的定义及如何构造张量。掌握张量的构造是学习深度学习的基础,因为几乎所有的计算都需要使用张量。了解不同的构造方法,让你在未来的工作中能灵活处理数据。
下一篇文章中,我们将探讨张量的基本操作,包括如何对张量进行变换和计算,为后续在 PyTorch 中进行更复杂的操作做好准备。
希望你们能在学习的过程中,积极动手实践,巩固所学的知识!
5 只生成张量基础之张量的定义与构造