pytorch中transpose的用法

  • Post author:
  • Post category:其他


在网上搜transpose的用法,出来的大多是numpy类中的用法,实际上跟torch中的tensor类的transpose方法实现方式是有区别的,

因此在看深度学习网络的代码时,碰到


.transpose(1, 2)


这种样式的代码时就不知所措了。

为此,小弟亲自一试。代码奉上:

import torch
a=torch.Tensor([[[1,2,3],[2,3,4]],[[3,4,5],[4,5,6]]])
b=a.transpose(1,2)  
c=a.transpose(2,1)
print(a.shape)
print(b.shape)
print(c.shape)

print(a)
print(b)
print(c)
输出:
torch.Size([2, 2, 3])
torch.Size([2, 3, 2])
torch.Size([2, 3, 2])
tensor([[[1., 2., 3.],
         [2., 3., 4.]],

        [[3., 4., 5.],
         [4., 5., 6.]]])
tensor([[[1., 2.],
         [2., 3.],
         [3., 4.]],

        [[3., 4.],
         [4., 5.],
         [5., 6.]]])
tensor([[[1., 2.],
         [2., 3.],
         [3., 4.]],

        [[3., 4.],
         [4., 5.],
         [5., 6.]]])

————————————

可以看到,


.transpose(1, 2)与.transpose(2,1)


在实现结果上是没有区别的,因此小伙伴们再碰到类似情况,可以放心的认为就是两个维度的互换啦!



版权声明:本文为qq_35692267原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。