在洗牌csr_matrix时出现分段错误

时间:2017-06-23 06:04:31

标签: python segmentation-fault sparse-matrix shuffle

我有一个有形状的csr_matrix(40000000,1600000)。我使用以下方法来混洗这个矩阵:

<Project>

但是得到错误&#34;分段错误&#34;。

我在小csr_matrix上测试了这个shuffle方法,但它确实有效。 有谁知道如何解决它?

2 个答案:

答案 0 :(得分:0)

这听起来像是一个记忆问题。我可以在我的机器上随机播放一个这样大小的矩阵。它花了大约2.5GB RAM。

如果从unix shell运行应用程序,则分段错误很可能是由于进程内存不足。但是,如果你是从python shell运行的,那么你应该得到一个MemoryError。

只需添加,您也可以使用sklearn.utils.shuffle为您进行随机播放(请注意内存使用情况相同)。

from sklearn.utils import shuffle
csr_matrix_new = shuffle(csr_matrix)

答案 1 :(得分:0)

你知道`np.random.shuffle&#39;使用什么shuffle算法?

看看Fisher-Yates shuffle非常容易实现并做到了,所以应该防止分配任何额外的内存。