PyTorch - 沿新维度的张量乘法

时间:2021-06-11 18:50:50

标签: python pytorch

抱歉,如果已经问过了,但我在 Google 上找不到要查找的字词。

假设我有一个大小为 t1 的张量 [a,b] 和一个大小为 t2 的张量 [c]

如何输出大小为 t3 的张量 [a,b,c],以便:

t3[0, :, 0] = t1[0, :] * t2[0]
t3[0, :, 1] = t1[0, :] * t2[1]
t3[0, :, 2] = t1[0, :] * t2[2]

...

t3[1, :, 0] = t1[1, :] * t2[0]
t3[1, :, 1] = t1[1, :] * t2[1]
t3[1, :, 2] = t1[1, :] * t2[2]

等等,没有 for 循环?

谢谢

1 个答案:

答案 0 :(得分:1)

使用 torch.kron 会得到一个张量 a x b*c,然后使用 torch.Tensor.reshape 可以映射到一个张量 a x b x c :

t3=torch.kron(t1,t2).reshape(a,b,c)