在深度学习中经常出现维度转换操作,但维度转换很可能会打乱数据。这次我们设置一些实验去了解原理。
bs = 8
x = torch.tensor([
[ [1, 2],[3, 4],[5, 6],[7, 8] ],
[ [9, 10],[11, 12],[13, 14],[15, 16] ],
[ [17, 18],[19, 20],[21, 22],[23, 24] ],
[ [25, 26],[27, 28],[29, 30],[31, 32] ]
] )
batch_x = torch.cat([(x+i).unsqueeze(0) for i in range(bs)])
我们打印batch_x
的shape
和自身可以得到:
|
|
现在我们有个需求:将通道维度换算到最后一维 ,现在有几个函数可以使用view
, reshape
和permute
:
- view:
|
|
- reshape
|
|
- permute
|
|