来自numpy的DGESDD Lapack例程加载失败

时间:2015-03-16 17:24:33

标签: python numpy lapack

我在使用pinv模块中的numpy.linalg功能时遇到问题。我想反转一个矩形矩阵A

try:
    Binv = np.linalg.pinv(A)
except:
    print("an error occurs")

当我运行代码时,不会引发异常,但在我的Python提示符中会出现以下红色文本:init_dgesdd failed init

然而,当我在其他上下文中使用我的代码与其他矩阵(不同的形状,不同的条件值......)时,它可以正常工作。

1 个答案:

答案 0 :(得分:2)

在调查错误后,似乎来自内存问题。当我使用具有(105 x 177144)形状的矩阵时,它可以工作。但是当我使用具有(105 x 178668)形状的矩阵时,它不起作用。

此外,查看numpy.linalg.umath_linalg.c.src代码的quik显示,当内存缓冲区的内存分配失败时,我在上一篇文章中提到的错误被引发。此内存缓冲区用于存储Uvd,S,VT以及svd计算期间所需的所有中间数组。