谁能告诉我如何在python中做张量积。我的意思是,例如,我有5 (6,1) (类: numpy.ndarray)数组,我需要这5 (6,1)数组的张量积,所以我的输出将是(6,6,6,6,6)张量。
发布于 2020-09-21 13:28:38
才能得到那个张量。相反,你必须有6个数组。因为对于5个矢量,在计算矢量的乘积时,只能选择5x6x5的形状。这张图片会让你更容易概括

因此,对于6个数组,我将其命名为a0,a1...a5。当您通过应用转置将1乘以他人时。在numpy中,您可以创建一个循环:a0*a0.T,a0*a1.T.
你现在将拥有6x6的a0,6x6的a1,... 6x6的a5。现在将它们堆叠在一起。6x6x6 (a0,a2...a5)。现在,你需要通过切换a0,a1,...的位置来形成其他(6x6x6)到(6x6x6x6)。
继续执行此操作,您可以获得(6x6x6x6x6)张量
发布于 2020-09-21 14:14:25
下面的方法对你有效吗?
import numpy as np
a1 = np.arange(6)
a2 = np.arange(6)
a3 = np.arange(6)
a4 = np.arange(6)
a5 = np.arange(6)
oo = np.einsum('i,j,k,l,m',a1,a2,a3,a4,a5)https://stackoverflow.com/questions/63986495
复制相似问题