5 PyTorch 张量操作教程
在本小节中,我们将深入探索 PyTorch 中的张量操作。张量是 PyTorch 中的核心数据结构,类似于 NumPy 的数组,但具有更强大的功能,能够利用 GPU 加速计算。我们将从基本的张量创建开始,逐步介绍常用的张量操作。
1. 创建张量
1.1 从列表创建张量
可以使用 torch.tensor()
从 Python 列表创建张量。
1 | import torch |
1.2 使用内置函数创建张量
PyTorch 提供了多种内置函数来创建张量:
torch.zeros()
: 创建全零张量torch.ones()
: 创建全一张量torch.arange()
: 创建等间隔的张量torch.rand()
: 创建随机张量
1 | # 创建全零张量 |
2. 张量的属性
2.1 张量的维度、形状和数据类型
张量有多个属性,可以获取它们的维度、形状和数据类型。
1 | tensor_example = torch.tensor([[1, 2, 3], [4, 5, 6]]) |
3. 张量的索引和切片
可以使用类似 NumPy 的方法进行张量的索引和切片。
3.1 索引
1 | # 创建示例张量 |
3.2 切片
1 | # 获取前两行,前两列 |
4. 张量的运算
PyTorch 支持多种类型的数学运算,包括加法、减法、乘法和除法等。
4.1 基本运算
1 | a = torch.tensor([1, 2, 3]) |
4.2 矩阵运算
1 | # 创建两个矩阵 |
5. 张量的广播
张量广播是指在进行运算时,自动扩展形状不相同的张量以匹配进行运算的张量。
1 | # 示例 |
6. 张量的转换
张量可以在 CPU 和 GPU 之间移动,也可以转换数据类型。
6.1 移动到 GPU
1 | if torch.cuda.is_available(): |
6.2 改变数据类型
1 | float_tensor = torch.tensor([1, 2, 3], dtype=torch.float32) # 改变数据类型为 float |
7. 小结
在本小节中,我们介绍了 PyTorch 中的张量操作,包括创建张量、索引与切片、基本运算、矩阵运算、广播以及张量转换。这些操作是 PyTorch 编程的基础,对于后续构建深度学习模型至关重要。请多加练习,熟悉这些操作,以便在实际项目中能够熟练应用。
5 PyTorch 张量操作教程