【发布时间】:2020-07-04 23:37:57
【问题描述】:
np.linalg.eig() 函数在 (15000, 15000) 矩阵上花费超过 10 分钟的时间是否正常?我正在使用标准运行时在 colab 环境中运行它。
【问题讨论】:
-
如果您提供了您使用过的代码 - 其他人可以轻松找出代码是否存在问题。最少的可重现代码总是有帮助的!
标签: python numpy eigenvalue eigenvector
np.linalg.eig() 函数在 (15000, 15000) 矩阵上花费超过 10 分钟的时间是否正常?我正在使用标准运行时在 colab 环境中运行它。
【问题讨论】:
标签: python numpy eigenvalue eigenvector
对于 N×N 矩阵,算法应该按照O(N^3) 进行缩放。所以如果 N 需要 T 时间,那么 2N 需要 2^3T = 8T 时间,而 10N 需要 10^3T = 1000T 时间。在我的旧笔记本电脑上,N=1500 需要 3.7 秒。 N=3000 需要 22 秒,这并不是真正的 8*3.7,但已经足够接近了。
现在 3000*5 = 15000,22*5^3 = 2750 秒 = 46 分钟。所以这就是它应该在我的电脑上花费的时间。所以你的电脑速度更快,但 15 分钟似乎还可以!
【讨论】:
k 最小或最大特征值,则有更快的算法,并且 numpy 可能也实现了它们。