首页 > 解决方案 > 等价于 einsum 的 N 维张量点

问题描述

我试图通过 einsum 找到将两个具有相同形状的 N 阶张量完全减少为标量的张量点等价物。两个张量都是 3 阶的。我想用 tensordot 来实现它,因为我认为它更容易扩展到更高的维度。这是 einsum 高达 4D 的收缩。

val_1D = np.einsum('i,i', A, B) #1D (aka dot-product)
val_2D = np.einsum('ij,ij', A, B) #2D
val_3D = np.einsum('ijk,ijk', A, B) #3D
val_4D = np.einsum('ijkl,ijkl', A, B) #4D

我需要一种方法来进行第 N 次收缩,而无需将它们全部写在代码中,因为 N 可能非常大,并且有多个数组来执行此操作。据我了解 tensordot 这应该是可能的。

标签: pythonnumpytensor

解决方案


推荐阅读