1. 程式人生 > >torch x = x.view(-1, ...)理解

torch x = x.view(-1, ...)理解

在torch裡面,view函式相當於numpy的reshape,來看幾個例子:

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

a.view(4, 4) # output below
tensor([[ 1,  2,  3,  4],
        [ 5,  6,  7,  8],
        [ 9, 10, 11, 12],
        [13, 14, 15, 16]])
[torch.FloatTensor of size 4x4]

a.view(2, 2, 4) # output below
tensor([[[ 1,  2,  3,  4],
         [ 5,  6,  7,  8]],

        [[ 9, 10, 11, 12],
         [13, 14, 15, 16]]])
[torch.FloatTensor of size 2x2x4]

在函式的引數中經常可以看到-1例如x.view(-1, 4)

這裡-1表示一個不確定的數,就是你如果不確定你想要reshape成幾行,但是你很肯定要reshape成4列,那不確定的地方就可以寫成-1

例如一個長度的16向量x,

x.view(-1, 4)等價於x.view(4, 4)

x.view(-1, 2)等價於x.view(8,2)

以此類推