我有一个形状为(F,T,M)的矩阵X。我希望沿着F轴乘以每个(T,M)矩阵,这样答案就是形状(M,M,F)。但是这个操作重复了很多次,而且非常慢: for f in range(F):
output[:,:,f] = np.matmul(X[f,:,:].T,X[f,:,:]) 我能找到的只有np.tensordot如果我理解正确的话,这对我来说不是一个好的选择,因为我需要的是矩阵乘法,而不是点积。 如何使用numpy有效地实现这一点?利用keras\tf来实现此
不使用for-循环,我想执行矩阵向量乘法. for N in range(A.shape[0]):简单地做A @ B的问题是,numpy假设B是一个矩阵,而不是广播矩阵向量积。这也是矩阵N和向量N的列空间中的矩阵乘法。
我试图寻找一个np.einsum和一个np.tensordot解决方案,但似乎找不到