PyTorch `permute' vs “ transpose ” : 区别是什么(和“ reshape” Bug 使您的形象被扭曲)

2026年8月2日2 次浏览来源:Dev.to阅读原文

你装上一个图像, 得到一个抗压器形状, 你的进化需要。

超流说。

有人说。

也给你一个合适的形状——为什么每个人都把事情搞复杂了?

因为其中两个是同一个工具,第三个是悄悄地破坏你的数据.

简短的答案完全交换了两个维度.

在一个电话中重新排列全部, 你必须列出每个维度。

是一个特殊的案例。

两者都返回一个视图——没有复制数据,只有脚步变化——这也意味着你们都有一个不相接的收音机.

完全不是在这个家庭。

它在一新形状下重新解释平面内存而无需移动任何东西,这样它就可以产生出你要求的形状,同时完全拼接数字的意思. ——互换两轴取出两个维度指数并互换.

其他的都不要动 两个论点的顺序并不重要——也是一样.

互换就是互换 在二维分数上,这是你已经知道的矩阵转写,是简写: 一个警告是:在超过两个维度的百分点上,倒置每个维度,而现代的PyTorch已经贬低了这一行为——它现在警告了,并注定会变成一个错误.

如果要在一批矩阵上"转换后两轴"的行为,请使用.,这是明确而安全的: 保留平原为二维矩阵.

任何更高的,都说出你的意思,或者——说明整个新顺序不互换;它将维度顺序完全改写.

你通过每个维度的旧指数 在你希望它结束的位置。

读作:"新dim 0为旧dim 2,新dim 1为旧dim 0,新dim 2为旧dim 1".

不是"把2号移到某个地方" 而是写出目的地命令 左到右 两个值得内化的后果: 你必须列出每个维度。

一个小姐,你得到。

用一连串转接器可以进行的任何重排,都可以在:一个:结果相同.

该版本称目的地外形出高声;被链式版本使读者模拟了他们头上的两个互换.

喜欢任何超出一个交换。

真正被咬的:不是这里,这是这篇文章存在的错误。

您有一组图像在 —— 您从 OpenCV, PIL, TensorFlow, 以及大多数图像文件得到的布局 —— 和 PyTorch 切变需要 。

两者都产生出一个对形状的收音机:同形状.

无出错.

没有警告 现在看第一频道里面到底有什么: 该版本收集了红色通道:像素被存储为.

因此红色是0,3,6,9等元素.

那是个真正的红色频道。

版本刚刚取出记忆中的前四个数字,并称它们为"频道0"——即一个整像素外加下个像素的三分之一.

您的"红色通道"现在是来自不同像素的红色,绿色和蓝色的混合物.

收发机是合适的外形,型号为列车,损失会稍有下降,准确性很悄悄地可怕.

屏幕上没有任何信息告诉你。

规则:移动维度.

将相同的平序数字重新划入新的括号。

如果你想改变轴线的含义,你需要——永远。

如果你想要关于如何重新剪切内存的完整图片,这在Reshape vs View in PyTorch中被覆盖.

真实代码:你实际上会写作的两次重排——频道-上到频道-第一:注意——分头.

并看到为何要点击区分: 其在这里是合法的,因为它只分割了上个轴线——8个嵌入值已经被相接地排列出,所以切成2个组的4没有重新排列任何东西.

然后真实地在序列轴前移动头轴.

分割轴是工作;移动轴是工作。

两者都打破了相接性,从不触及基础数据.

它们改变变速器的进取度——步法大小PyTorch通过每个维度的内存: 故能放逸.

这也是你下次打电话会爆炸的原因 两个修饰,选择很重要: 默认使用.

到达一个e

分享