【发布时间】:2016-12-10 11:39:57
【问题描述】:
我有两个矩阵 A、B、NxKxD 维度,我想得到矩阵 C、NxKxDxD 维度,其中 C[n, k] = A[n, k] x B[n, k].T(这里是“x " 表示维度 Dx1 和 1xD 矩阵的乘积,因此结果必须是 DxD 维度),所以现在我的代码看起来像这样(这里 A = B = X):
def square(X):
out = np.zeros((N, K, D, D))
for n in range(N):
for k in range(K):
out[n, k] = np.dot(X[n, k, :, np.newaxis], X[n, k, np.newaxis, :])
return out
由于 python 的 for 循环,大 N 和 K 可能会很慢。有没有办法在一个 numpy 函数中进行这种乘法?
【问题讨论】:
标签: python numpy matrix vector dot-product