我试图用PyTorch生成向量矩阵外积(张量)。假设向量v
的大小是p
,矩阵M
的大小是qXr
,那么乘积的结果应该是pXqXr。在
示例:
#size: 2
v = [0, 1]
#size: 2X3
M = [[0, 1, 2],
[3, 4, 5]]
#size: 2X2X3
v*M = [[[0, 0, 0],
[0, 0, 0]],
[[0, 1, 2],
[3, 4, 5]]]
对于两个向量v1
和v2
,我可以使用torch.bmm(v1.view(1, -1, 1), v2.view(1, 1, -1))
。这可以很容易地扩展为一批向量。然而,我不能找到一个解决向量矩阵的情况。另外,我需要对批量的向量和矩阵执行此操作。在
您可以使用einsum
如果[batch_size,z,x,y]是目标矩阵的形状,另一个解决方案是在每个位置用适当的元素构建两个这种形状的矩阵,然后应用元素乘法。它可以很好地处理一批向量:
我可以用下面的代码做到这一点。在
单矢量矩阵
对于一批向量和矩阵,可以很容易地使用
^{pr2}$torch.bmm
进行扩展。在相关问题 更多 >
编程相关推荐