我在哪里可以找到numpy.matmul()源代码?



当我在Python中使用np.matmul(A, b)和在c++中使用xtensor-blasxt::linalg::dot(A, b)时,我没有获得相同的结果。

我正在调查原因,因为当保存并从磁盘读取时,Ab在Python中执行np.allclose(A, b)时是相同的。

这两次乘法(在Py和c++中)的结果是一个包含250个元素的1D数组。第一个元素是相同的,中间的元素是不同的,最后的元素是相同的。如下:

[ True  True  True  True  True  True  True  True  True  True  True  True
True  True  True  True  True  True  True  True  True  True  True  True
True  True  True  True  True  True  True  True  True  True  True  True
False False False False False False False False False False False False
False False False False False False False False False False False False
False False False False False False False False False False False False
False False  True  True False False False False False False False False
False False False False False False False False False False False False
False False False False False False False False False False False False
False False False False False False False False False False False False
False False False False False False False False False False False False
False False False False False False False False False False False  True
True  True  True  True  True  True  True  True  True  True  True  True
True  True  True  True  True  True  True  True  True  True  True  True
True  True  True  True  True  True  True  True  True  True  True  True
True  True  True  True  True  True  True  True  True  True  True  True
True  True  True  True  True  True  True  True  True  True  True  True
True  True  True  True  True  True  True  True  True  True  True  True
True  True  True  True  True  True  True  True  True  True  True  True
True  True  True  True  True  True  True  True  True  True  True  True
True  True  True  True  True  True  True  True  True  True]

我确定了xtensor-blas到底叫什么:它是BLASgemv

我想看看np.matmul(A, b)叫什么。有没有人知道在做np.matmul(A, b)时如何找到BLAS调用的确切内容?

谢谢!

这似乎是有问题的函数,因此调用的CBLAS函数似乎是cblas_?syrk(在特殊情况下)和cblas_?gemm(一般情况下)。

最新更新