【发布时间】:2017-01-26 22:47:07
【问题描述】:
假设我有 A(KxMxN) 和 B(KxLxN) 矩阵,其中 L,M,N 很小,K 很大。我想计算使用沿第一个维度的最后两个维度的外积来获得矩阵 C(KxMxL)。
我可以通过为“K”中的每个索引 k 运行一个 for 循环来做到这一点,并将 numpy 的 matmul 函数用于二维矩阵
out = [np.matmul(x,y.T) for x, y in zip(A, B)]
out=np.asarray(out)
我想知道我是否可以在没有 for 循环/理解的情况下做到这一点,因为 K 是一个非常大的数字。
【问题讨论】:
-
它实际上是一个内积 - 在一组子数组上。外积增加维度,不求和。