首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在PyTorch中没有N维转换

在PyTorch中没有N维转换
EN

Stack Overflow用户
提问于 2017-06-30 16:07:15
回答 2查看 16.1K关注 0票数 25

PyTorch的torch.transpose函数仅转置2D输入。文档是here

另一方面,Tensorflow的tf.transpose函数允许您转置N任意维度的张量。

有人能解释一下为什么PyTorch没有/不能有N维转置功能吗?这是不是由于PyTorch中计算图构造的动态性质与Tensorflow的定义然后运行范式的原因?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-06-30 16:46:28

它只是在pytorch中以不同的方式调用。torch.Tensor.permute将允许你在pytorch中交换维度,就像TensorFlow中的tf.transpose一样。

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

代码语言:javascript
复制
>>> 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])
票数 40
EN

Stack Overflow用户

发布于 2019-07-01 03:18:48

Einops支持任意维度的冗长换位:

代码语言:javascript
复制
from einops import rearrange
x  = torch.zeros(10, 100, 100, 3)
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 )

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44841654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档