python中的多维矩阵乘法

时间:2016-11-18 16:37:39

标签: python numpy matrix-multiplication

我有维度line.ljust(30, " ")的矩阵A和维度500x2000x30的矩阵B.

您可以认为有{500}个30x5个实例,因为矩阵A的维度为2000x30

我想将A中500x2000x30的每一个乘以矩阵B,以获得大小为1x2000x30的新矩阵。

即。 1x2000x5应该为我提供一个维度A X B

的矩阵

显然,通过矩阵A循环500次是一种解决方案,但有没有一种有效的方法来实现这一目标?

编辑:A和B都是numpy数组

1 个答案:

答案 0 :(得分:3)

如果你有numpy个数组,可以使用np.dot函数:

np.dot(A, B)

它会完全按照你想要的方式行事,即A B的第一轴与 dot(a, b)[i,j,k,m] = sum(a[i,j,:] * b[k,:,m]) 的第一轴“合约”:

  

对于2-D阵列,它相当于矩阵乘法,对于1-D阵列相当于向量的内积(没有复共轭)。对于N维,它是a的最后一个轴上的和积,b是倒数第二个:

      const bitmap = await q.nfcall(fs.readFile,req.file.path);
      //remove the temp image
      fs.unlink(req.file.path);        
      const buffer = new Buffer(bitmap).toString('base64');
      app.models.predict('APP_KEY', buffer);
相关问题