我有一个相对较小的数据集,包括~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
答案 0 :(得分:2)
我意识到这是一个老问题,但NetworkX
仍然存在内存问题,尤其是在处理communities
等算法时。
查看 graph-tool。它是一个python
包,其性能比NetworkX
我与graph-tool
无关。在大型网络上运行算法方面,它解决了我的内存问题。
如果您尚未将nodes
转换为integers
,请尝试将其转换为。我发现标记为字符串的节点会占用大量内存。
快乐的网络