np.linalg.eig() 需要花费很多时间来运行

问题描述 投票:0回答:1

np.linalg.eig() 函数处理 (15000, 15000) 矩阵需要 10 分钟以上,这正常吗?我在具有标准运行时的 colab 环境中运行它。

python numpy eigenvalue eigenvector
1个回答
2
投票

正式来说,对于 N×N 矩阵,算法应缩放为

O(N^3)
。所以如果N需要T时间,那么2N需要2^3T = 8T时间,10N需要10^3T = 1000T时间。在我的旧笔记本电脑上,N=1500 需要 3.7 秒。 N=3000 需要 22 秒,这并不是真正的 2^3 * 3.7 = 29.6,但足够接近了。

现在 3000 * 5 = 15000,22 * 5^3 = 2750 秒 = 46 分钟。这就是我的计算机上应该花费的时间。所以你的电脑速度更快,但 15 分钟似乎还可以!

© www.soinside.com 2019 - 2024. All rights reserved.