Pytorch 中的向量张量逐元素乘法

Vector-Tensor element-wise multiplication in Pytorch

我正在尝试从 Pytorch 中表示图像的张量中提取亮度,因此我需要按元素将大小为 3 的向量(对于三个 RGB 值权重)乘以表示图像的 3xNxN 张量这样我在最后得到一个 NxN 矩阵,其中张量的三个通道已与向量中给定的权重相加。

我想存在 Pytorch 操作可以帮助我在没有循环的情况下做到这一点,但我还没有找到它们。

您必须重塑 3 维 RGB 向量才能广播到 3xNxN,如下所示:

rgb = rgb.reshape(-1, 1, 1)

所以它将具有 (3, 1, 1)

的形状

现在您可以将其与原始图像相乘并沿第一个维度求和:

result = torch.sum(rgb * image, dim=0)