来自numpy.linalg.svd的MemoryError用于大型矩阵

时间:2013-12-05 18:12:36

标签: python numpy svd

以下命令将在我的机器上失败,Windows 7旗舰版SP1 x64,Python 3.3.3 x64,numpy 1.8.0和16GB内存,这似乎足以完成任务。它也在集群上失败。

python -c "import numpy as np;np.linalg.svd(np.random.random((25000,10000)))"

有关原因的任何想法?感谢。

2 个答案:

答案 0 :(得分:3)

我认为你只是达到你的RAM限制:我在我的Linux机器(64Gb的RAM)上运行它,并且该过程占用14.4 Gb。如果你有一台16Gb的机器,那么其中一些机器被操作系统和其他东西占用,所以也许你只是错过了一些备用RAM用于这个过程。

答案 1 :(得分:1)

我的想法是你没有足够的资源。 这是在我的Mac Mini上运行的16GB内存。 Python的峰值达到8.5GB,我的交换文件在处理过程中增长到了近15GB。

交换文件的大小是多少,是动态的还是预先分配的?如果你有可用的磁盘,我会考虑将其预先分配为32GB。