张量是 PyTorch 中的基本数据结构,它是一个多维数组,类似于 NumPy 的 ndarray。但与 ndarray 不同,PyTorch 的张量可以在 GPU 上运行,从而实现快速的数学运算。
以下是创建张量的一些常见操作,并附带示例:
-
torch.tensor(data): 从现有数据(例如列表或 NumPy ndarray)创建张量。
import torch # 从列表创建张量 t1 = torch.tensor([1, 2, 3, 4]) print(t1) # 输出: tensor([1, 2, 3, 4])
-
torch.zeros(size): 创建一个给定形状的张量,所有元素都设置为 0。
t2 = torch.zeros(3, 2) print(t2) # 输出: # tensor([[0., 0.], # [0., 0.], # [0., 0.]])
-
torch.ones(size): 创建一个给定形状的张量,所有元素都设置为 1。
t3 = torch.ones(2, 3) print(t3) # 输出: # tensor([[1., 1., 1.], # [1., 1., 1.]])
-
torch.rand(size): 创建一个给定形状的张量,其中的元素是从均匀分布 [0, 1) 中随机采样的。
t4 = torch.rand(2, 2) print(t4)
-
torch.randn(size): 创建一个给定形状的张量,其中的元素是从标准正态分布中随机采样的。
t5 = torch.randn(2, 2) print(t5)
-
torch.arange(start, end, step): 创建一个从 start 到 end (不包括 end),以 step 为间隔的一维张量。
t6 = torch.arange(0, 10, 2) print(t6) # 输出: tensor([0, 2, 4, 6, 8])
-
torch.linspace(start, end, num): 创建一个一维张量,其中包含从 start 到 end 的 num 个等间隔的点。
t7 = torch.linspace(0, 10, 5) print(t7) # 输出: tensor([ 0., 2.5, 5., 7.5, 10.])
-
torch.full(size, fill_value): 创建一个给定形状的张量,所有元素都设置为 fill_value。
t8 = torch.full((2, 3), 7) print(t8) # 输出: # tensor([[7, 7, 7], # [7, 7, 7]])
-
torch.eye(n): 创建一个 n x n 的单位矩阵。
t9 = torch.eye(3) print(t9) # 输出: # tensor([[1., 0., 0.], # [0., 1., 0.], # [0., 0., 1.]])
这些只是创建张量的一些基本方法。一旦你熟悉了这些操作,你可以开始使用这些张量进行更复杂的计算和深度学习模型构建。