在 PyTorch 中,向量和张量是重要的概念,它们用于表示和操作数据。下面是对这两个概念的解释:
向量
- 定义:向量是一个一维数组,它包含一系列有序排列的数字。在数学上,向量可以用于表示坐标、速度等物理量。
- 在 PyTorch 中表示:在 PyTorch 中,向量通常是一个一维张量,形状为
[n]
,其中n
是向量的长度。 - 例子:
import torch
# 创建一个一维张量,即向量
vector = torch.tensor([1.0, 2.0, 3.0]) # 形状为 [3]
张量
在 PyTorch 中,张量是最基本的数据结构,几乎所有的数据操作都是围绕张量进行的。通过熟悉向量和张量的操作,你可以处理和变换各种数据形式。
-
定义:张量是一个多维数组的泛化,可以看作是标量、向量和矩阵的扩展。张量可以有任意多个维度,每个维度包含若干个数值。张量是表示多维数据的核心数据结构。
-
在 PyTorch 中表示:在 PyTorch 中,张量是
torch.Tensor
类的实例。它可以有任意维度,并且支持多种操作,比如加减乘除、矩阵乘法、广播等。 -
维度(Rank):
- 0 维张量:标量(scalar),形状为
[]
。 - 1 维张量:向量(vector),形状为
[n]
。 - 2 维张量:矩阵(matrix),形状为
[m, n]
。 - 3 维及以上张量:更高维度的张量,形状为
[d1, d2, d3, ..., dn]
。
- 0 维张量:标量(scalar),形状为
-
例子:
-
import torch # 创建一个二维张量(矩阵) matrix = torch.tensor([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]]) # 形状为 [2, 3] # 创建一个三维张量 tensor_3d = torch.tensor([[[1.0, 2.0], [3.0, 4.0]], [[5.0, 6.0], [7.0, 8.0]]]) # 形状为 [2, 2, 2]
总结
- 向量 是一种特殊的 张量,其维度为 1,形状为
[n]
。 - 张量 是一个更广泛的概念,可以表示标量、向量、矩阵以及更高维的数组。