【发布时间】:2020-09-21 05:10:32
【问题描述】:
谁能告诉我如何在 python 中做张量积。我的意思是,例如,我有 5 (6,1) (Class: numpy.ndarray) 数组,我需要这 5 (6,1) 数组的张量积,这样我的输出将是 (6,6, 6,6,6) 张量。
【问题讨论】:
-
添加案例。
标签: python tensorflow numpy-ndarray
谁能告诉我如何在 python 中做张量积。我的意思是,例如,我有 5 (6,1) (Class: numpy.ndarray) 数组,我需要这 5 (6,1) 数组的张量积,这样我的输出将是 (6,6, 6,6,6) 张量。
【问题讨论】:
标签: python tensorflow numpy-ndarray
为了得到那个张量。你必须有 6 个数组。 因为对于 5 个向量,在做向量乘积时只能选择 5x6x5 的形状。这张图片会让你更容易概括
因此,对于 6 个数组,我将其称为 a0,a1...a5。当您通过应用转置将 1 倍增给其他人时。在numpy中,你可以创建一个循环:a0*a0.T,a0*a1.T.....
您现在将拥有 6x6 的 a0、6x6 的 a1、... 6x6 的 a5。现在将它们堆叠在一起。 (a0,a2...a5) 的 6x6x6。现在,你需要通过切换a0,a1,...的位置来形成其他(6x6x6)形成(6x6x6x6)
继续这样做,你可以得到一个 (6x6x6x6x6) 张量
【讨论】:
以下内容对您有用吗?
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)
【讨论】: