torch中transpose和permute有什么区别,例子

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保证存储连续性;

你可能感兴趣的:(yuque,python,深度学习,numpy)