1 2 3 4 5 6 | a = torch.tensor([[[1,2,3],[4,5,6]]]) b = a.view(3,2) c = a.permute(0,2,1) print(a.size(),a) print(b.size(),b) print(c.size(),c) |
输出结果不一样
1 2 3 4 5 6 7 8 9 10 11 | a: torch.Size([1, 2, 3]) tensor([[[1, 2, 3], [4, 5, 6]]]) b: torch.Size([3, 2]) tensor([[1, 2], [3, 4], [5, 6]]) c: torch.Size([1, 3, 2]) tensor([[[1, 4], [2, 5], [3, 6]]]) |
view 相当于将原来的张量展开成一位的数据 [1,2,3,4,5,6],然后再进行变形
permute 是更灵活的transpose,可以灵活的对原数据的维度进行调换,而数据本身不变。