添加形状为 (16, 8, 8, 5) 的 4D 张量和形状为 (16, 16) 的 2D 张量

问题描述 投票:0回答:1

我想将形状 (16,16) 的噪声添加到形状 (16,8,8,5) 的 4D 张量中。 我尝试了几种广播方法,但仍然遇到错误,但出现单例不匹配错误。如何添加这两个张量而不出现任何广播错误。

python tensor torch
1个回答
0
投票

我假设您有这样的尺寸(批量大小、宽度、高度、通道)或类似尺寸。

张量中的每个元素都没有足够的噪声,因此某些元素必须共享噪声。我猜想通道维度将不得不分享他们的噪音。假设通道是 RGB(颜色)。然后,每个位置的每个图像都会有一个独特的噪点,但每个颜色通道只有一个噪点。

但是,你的噪音不适合这个(也不适合任何其他方式)。

如果我正确描述了你的情况,只需使用正确形状的噪声(16,8,8)

如果你有那种噪音,它会起作用:

import torch

tensor1 = torch.ones((16,8,8,5))
tensor2 = torch.ones((16,8,8))

# you will need to reshape noise from 16x16 to 16x8x8
result = tensor1 * tensor2.reshape(16,8,8,1)   # add a last dimension for the channels

如果我的猜测不正确,请详细说明

© www.soinside.com 2019 - 2024. All rights reserved.