PyTorch中创建张量常见操作

张量是 PyTorch 中的基本数据结构,它是一个多维数组,类似于 NumPy 的 ndarray。但与 ndarray 不同,PyTorch 的张量可以在 GPU 上运行,从而实现快速的数学运算。

以下是创建张量的一些常见操作,并附带示例:

  1. torch.tensor(data): 从现有数据(例如列表或 NumPy ndarray)创建张量。

    import torch
    
    # 从列表创建张量
    t1 = torch.tensor([1, 2, 3, 4])
    print(t1)  # 输出: tensor([1, 2, 3, 4])
  2. torch.zeros(size): 创建一个给定形状的张量,所有元素都设置为 0。

    t2 = torch.zeros(3, 2)
    print(t2)
    # 输出:
    # tensor([[0., 0.],
    #         [0., 0.],
    #         [0., 0.]])
  3. torch.ones(size): 创建一个给定形状的张量,所有元素都设置为 1。

    t3 = torch.ones(2, 3)
    print(t3)
    # 输出:
    # tensor([[1., 1., 1.],
    #         [1., 1., 1.]])
  4. torch.rand(size): 创建一个给定形状的张量,其中的元素是从均匀分布 [0, 1) 中随机采样的。

    t4 = torch.rand(2, 2)
    print(t4)
  5. torch.randn(size): 创建一个给定形状的张量,其中的元素是从标准正态分布中随机采样的。

    t5 = torch.randn(2, 2)
    print(t5)
  6. torch.arange(start, end, step): 创建一个从 start 到 end (不包括 end),以 step 为间隔的一维张量。

    t6 = torch.arange(0, 10, 2)
    print(t6)  # 输出: tensor([0, 2, 4, 6, 8])
  7. torch.linspace(start, end, num): 创建一个一维张量,其中包含从 start 到 end 的 num 个等间隔的点。

    t7 = torch.linspace(0, 10, 5)
    print(t7)  # 输出: tensor([ 0.,  2.5,  5.,  7.5, 10.])
  8. torch.full(size, fill_value): 创建一个给定形状的张量,所有元素都设置为 fill_value。

    t8 = torch.full((2, 3), 7)
    print(t8)
    # 输出:
    # tensor([[7, 7, 7],
    #         [7, 7, 7]])
  9. torch.eye(n): 创建一个 n x n 的单位矩阵。

    t9 = torch.eye(3)
    print(t9)
    # 输出:
    # tensor([[1., 0., 0.],
    #         [0., 1., 0.],
    #         [0., 0., 1.]])

这些只是创建张量的一些基本方法。一旦你熟悉了这些操作,你可以开始使用这些张量进行更复杂的计算和深度学习模型构建。

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注