【问题标题】:Tensordot of 2 vector fields2个向量场的张量点
【发布时间】:2020-11-01 01:48:38
【问题描述】:

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

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

我目前正在尝试使用 numpys tensordot() 函数来实现这一点,但我无法找出正确的轴来获得 (1144,3,3) 的形状。

【问题讨论】:

  • tensordot 是一种泛化dot 的尝试。那是 dot/inner 产品在某些行/列组合上。看起来你想要一个外部产品,没有任何求和。

标签: python numpy tensor dot-product


【解决方案1】:

您可以为此使用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这意味着没有办法模仿

->...-like 行为。所以我不明白如何使用numpy.tensordot 来做到这一点。

【讨论】:

    猜你喜欢
    • 2021-12-19
    • 2017-04-01
    • 2020-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-04
    • 1970-01-01
    相关资源
    最近更新 更多