在Pytorch中没有n维三维

  • 本文关键字:三维 Pytorch pytorch
  • 更新时间 :
  • 英文 :


pytorch的 torch.transpose函数仅转移2D输入。文档在这里。

另一方面,TensorFlow的tf.transpose功能允许您转换N任意维度的张量。

有人可以解释为什么pytorch不能/不能具有n维度转置功能?这是由于Pytorch与Tensorflow的定义 - 然后运行范式的计算图构造的动态性质?

在pytorch中简单地称为不同。torch.tensor.permute将允许您在pytorch中交换尺寸。

作为如何将4D图像张量从NHWC转换为NCHW的示例(未测试,可能包含错误(:

>>> img_nhwc = torch.randn(10, 480, 640, 3)
>>> img_nhwc.size()
torch.Size([10, 480, 640, 3])
>>> img_nchw = img_nhwc.permute(0, 3, 1, 2)
>>> img_nchw.size()
torch.Size([10, 3, 480, 640])

Einops支持任意尺寸数量的冗长换位:

from einops import rearrange
x  = torch.zeros(10, 3, 100, 100)
y  = rearrange(x, 'b c h w -> b h w c')
x2 = rearrange(y, 'b h w c -> b c h w') # inverse to the first

(并且相同的代码也适用于TensorFow(

最新更新