是否可以在pytorch中将不同大小的张量加在一起?

Is it possible to add tensors of different sizes together in pytorch?

我有一个大小为 (3, 224, 224) 的图像渐变和一个大小为 (1, 768) 的图像块。是否可以将此渐变添加到补丁中以获得补丁的大小 (1, 768)?

原谅我的好奇。我知道 pytorch 也使用广播,我不确定我是否能够以类似于下面的行的方式使用两个不同的张量来做到这一点:

torch.add(a, b)

例如:

最终产品将是左侧的相同补丁,右侧添加了整个图像的渐变。我的理解是不可能的,但是知识是没有界限的。

没有。两个张量是否可广播由以下定义 rules:

  • 每个张量至少有一个维度。

  • 迭代维度大小时,从尾随维度开始,维度大小必须相等,其中之一为 1,或者其中之一不存在。

因为第二个项目符号在您的示例中不成立(即 768 != 2241 not in {224, 768}),您无法广播添加。如果您有一些有意义的方法来重塑渐变,您也许可以。

我想自己做。我将图像渐变(右)分成 16 x 16 个补丁,创建了一个循环,将每个补丁添加到原始图像补丁(左)。通过这种方式,我能够将 224 x 224 图像渐变添加到 16 x 16 补丁中。我只是想看看如果我这样做会发生什么