python pytorch view()関数

826 ワード

viewはtensorの形状を変えるもので、単純なものではなく複数行のtensorが1行につながっているだけで、viewの-1は適応的な調整です
A = torch.arange(0, 16)
print(A)
#tensor([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15])
B = A.view(-1,2)
print(B)
#tensor([[ 0,  1],
        [ 2,  3],
        [ 4,  5],
        [ 6,  7],
        [ 8,  9],
        [10, 11],
        [12, 13],
        [14, 15]])
B = A.view(2,-1)
print(B)
#tensor([[ 0,  1,  2,  3,  4,  5,  6,  7],
        [ 8,  9, 10, 11, 12, 13, 14, 15]])
C = A.view(-1,2,2)
print(C)
#tensor([[[ 0,  1],
         [ 2,  3]],

        [[ 4,  5],
         [ 6,  7]],

        [[ 8,  9],
         [10, 11]],

        [[12, 13],
         [14, 15]]])
C = A.view(2,2,-1)
print(C)
#tensor([[[ 0,  1,  2,  3],
         [ 4,  5,  6,  7]],

        [[ 8,  9, 10, 11],
         [12, 13, 14, 15]]])