2024-06-09 05:28:34 发布
网友
我在使用numpy.linalg模块中的pinv函数时遇到问题。我想反转一个矩形矩阵A:
numpy.linalg
pinv
A
try: Binv = np.linalg.pinv(A) except: print("an error occurs")
运行代码时,不会引发异常,但在Python提示符中出现以下红色文本:init_dgesdd failed init。在
init_dgesdd failed init
但是,当我在其他上下文中使用其他矩阵(不同的形状、不同的条件值…)时,它可以正常工作。在
经过调查,这个错误似乎来自记忆问题。当我使用一个(105×177144)形状的矩阵时,它是有效的。但是当我使用(105×178668)形状的矩阵时,它就不起作用了。在
更何况,一眼望去numpy.linalg.umath_linalg先生src代码显示,当内存缓冲区的内存分配失败时,我在上一篇文章中提到的错误会引发。该内存缓冲区用于存储在svd计算过程中所需的U、S、VT和所有中间数组。在
经过调查,这个错误似乎来自记忆问题。当我使用一个(105×177144)形状的矩阵时,它是有效的。但是当我使用(105×178668)形状的矩阵时,它就不起作用了。在
更何况,一眼望去numpy.linalg.umath_linalg先生src代码显示,当内存缓冲区的内存分配失败时,我在上一篇文章中提到的错误会引发。该内存缓冲区用于存储在svd计算过程中所需的U、S、VT和所有中间数组。在
相关问题 更多 >
编程相关推荐