PyTorch:批量外加法

hsi*_*iou 1 python pytorch

我有两个 PyTorch 张量:AB,形状均为(b, c, 3)。我想对CA进行外积B,得到的形状是(b, c, 3, 3),并用加法代替乘法运算。我该怎么做呢?

Sha*_*hai 6

您可以添加相应的单例维度:

C = A[..., None] + B[..., None, :]
Run Code Online (Sandbox Code Playgroud)

例如,批次和通道维度等于 1 ( b=1, c=1):

import torch
A = torch.tensor([[[1, 2, 3.]]]) 
B = torch.tensor([[[4., 5., 6.]]])
A[..., None] + B[..., None, :]
Out[ ]:
tensor([[[[5., 6., 7.],
          [6., 7., 8.],
          [7., 8., 9.]]]])
Run Code Online (Sandbox Code Playgroud)