通过可视化一个三维张量上的求和过程,更好地直观地了解PyTorch的维数理解

  • 张量(tensor):在TensorFlow和pyTorch中,大量数据不放在数组之类的容器中,而放在一个大张量中。例如,如果有20000张28✕28,24位真彩色的照片,就会放到一个[20000,28,28,3]形状的张量中。
  • 当开始用PyTorch张量做一些基本的运算时,比如求和,它看起来很简单,对于一维张量来说很简单:
>> x = torch.tensor([1, 2, 3])
>> torch.sum(x)
tensor(6)
torch.sum(input, dim, keepdim=False, dtype=None)

>> x = torch.tensor([      
    [1, 2, 3],      
    [4, 5, 6]    ]) 
>> x.shape 
torch.Size([2, 3])

三维求和:

  • dim=0
>> y = torch.tensor([
     [
       [1, 2, 3],
       [4, 5, 6]
     ],
     [
       [1, 2, 3],
       [4, 5, 6]
     ],
     [
       [1, 2, 3],
       [4, 5, 6]
     ]
   ])
>> y.shape
torch.Size([3, 2, 3])

>> torch.sum(y, dim=0) 
tensor([[ 3,  6,  9],         
        [12, 15, 18]])
  • 图示:

在这里插入图片描述

  • dim=1
>> torch.sum(y, dim=1)

tensor([[5, 7, 9],
        [5, 7, 9],
        [5, 7, 9]])

图示:
在这里插入图片描述

  • dim=2
>> torch.sum(y, dim=2)

tensor([[ 6, 15],
        [ 6, 15],
        [ 6, 15]])

在这里插入图片描述

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐