torch中transpose和permute都是用于交换不同维度的内容,但两者有所不同。
其中,torch.transpose()是交换指定的两个维度的内容,permute()则可以一次性交换多个维度。具体情况如下:
- transpose(): 两个维度的交换
例如,如果您有一个大小为(3,4,6)的张量,您可以使用torch.transpose(input,1,2)
将其转换为一个大小为(3,6,4)的张量。 - permute(): 一次性做任意维度的交换
例如,如果您有一个大小为(3,4,6)的张量,您可以使用torch.permute(input,(0,2,1))
将其转换为一个大小为(3,6,4)的张量。
这两个方法都和numpy.reshape和torch.view完全不同,因为他会改变矩阵中元素在内存中的存储位置;在使用permute方法后要记得跟上continuous保证存储连续性;