我有两个PyTorch张量:A
和B
,它们的形状均为(b, c, 3)
。我想制作C
和A
的外积B
,以使最终的形状为(b, c, 3, 3)
,并用加法代替乘法运算。我该怎么办?
答案 0 :(得分:0)
您可以添加相应的单例尺寸:
C = A[..., None] + B[..., None, :]
例如,批次和渠道尺寸等于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.]]]])