一、view函数相当于reshape

在torch里面,view函数相当于numpy的reshape,来看几个例子:

  1. import torch
  2. a = torch.arange(1, 17) # a's shape is (16,)

tensor([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16])

  • 使用view函数

    1. a.view(4, 4) # output below

    tensor([[ 1, 2, 3, 4],

    1. [ 5, 6, 7, 8],
    2. [ 9, 10, 11, 12],
    3. [13, 14, 15, 16]])
  • 再次使用view函数调整

    1. a.view(2, 2, 4)

    tensor([[[ 1, 2, 3, 4],

    1. [ 5, 6, 7, 8]],
    2. [[ 9, 10, 11, 12],
    3. [13, 14, 15, 16]]])

二、参数-1的意思

在函数的参数中经常可以看到-1例如x.view(-1, 4)
这里-1表示一个不确定的数,就是你如果不确定你想要reshape成几行,但是你很肯定要reshape成4列,那不确定的地方就可以写成-1
例如一个长度的16向量x,