小型数据集上的Python networkx内存错误

时间:2012-03-27 17:48:44

标签: python networkx

我有一个相对较小的数据集,包括~100k边和~7000个节点。我正在尝试使用两种算法在我的数据集中查找社区。我添加了边缘并继续运行在此处实现的算法:http://perso.crans.org/aynaud/communities/#as-python-module

数据基本如下:

Node1,Node2

Node1连接到node2,图表是无向的。

但程序运行了一段时间然后给了我一个内存错误。我知道它有效,因为我在一个小数据集上测试它并且它正常工作,但它给了我一个内存错误。我对这些算法知之甚少,但我的印象是我拥有的数据集非常小,我在个人家用电脑上运行它。这只是实现本身的问题还是由于我的机器的限制?

除了在具有更多内存的服务器上运行它之外,你们是否有想法如何使其工作(即另一个软件或算法)?

谢谢!

回溯:

Traceback (most recent call last):
  File "<wingdb_compile>", line 65, in <module>
  File "C:\Python27\lib\site-packages\networkx\drawing\layout.py", line 242, in fruchterman_reingold_layout
    pos=_fruchterman_reingold(A,dim,pos_arr,fixed,iterations)
  File "C:\Python27\lib\site-packages\networkx\drawing\layout.py", line 280, in _fruchterman_reingold
    delta = np.zeros((pos.shape[0],pos.shape[0],pos.shape[1]),dtype=A.dtype)
MemoryError

1 个答案:

答案 0 :(得分:2)

我意识到这是一个老问题,但NetworkX仍然存在内存问题,尤其是在处理communities等算法时。

查看 graph-tool。它是一个python包,其性能比NetworkX

快得多

我与graph-tool无关。在大型网络上运行算法方面,它解决了我的内存问题。

如果您尚未将nodes转换为integers,请尝试将其转换为。我发现标记为字符串的节点会占用大量内存。

快乐的网络

相关问题