2 个矢量场的 Tensordot

Tensordot of 2 vector fields

我想计算 2 个形状为 (1144,3) 的张量的元素张量积,这意味着如果我理解正确的话,我想计算沿第二个轴的张量点。

我希望结果的形状为 (1144,3,3)

我目前正在尝试使用 numpys tensordot() 函数来实现此目的,但我无法找出用于获得 (1144,3,3).

形状的正确轴

您可以为此使用 numpy.einsum

In [30]: a
Out[30]:
array([[0, 1, 2],
       [3, 4, 5]])

In [31]: np.einsum('ij,ik->ijk', a, a)
Out[31]:
array([[[ 0,  0,  0],
    [ 0,  1,  2],
    [ 0,  2,  4]],

       [[ 9, 12, 15],
    [12, 16, 20],
    [15, 20, 25]]])

因为numpy.tensordot只支持2个元素axes这意味着没有办法模仿

->...-样的行为。所以我看不出 numpy.tensordot.

是如何做到的