运行k_cliques_community时出现内存错误

时间:2018-06-30 20:53:35

标签: python anaconda networkx

我在网络数据上运行k_cliques_community,并在响应时间过长后收到内存错误。该代码对我的其他数据非常有效,但对本数据却不起作用。

c = list(k_clique_communities(G_fb, 3))
list(c[0])

这是跟踪错误的快照 enter image description here

3 个答案:

答案 0 :(得分:1)

我尝试在具有16 GB RAM和i7 -7700HQ的系统上运行您的代码,内核在返回内存错误后死亡。我认为这是因为大小为3的k-clique的计算需要大量的计算能力/内存,因为您的no数很大。节点和边缘。我认为您需要研究其他方法来找到k-clique,例如GraphX - Apache Spark

答案 1 :(得分:0)

您可能安装了x32的python。 x32安装被限制为2 GB的内存,而不管您有多少系统内存。这很不方便,但是可以。卸载python并安装x64安装。再次,这很不方便,但这是我见过的唯一解决方案。

答案 2 :(得分:0)

networkx 文档中所述:

要获得所有最大团的列表,请使用 list(find_cliques(G))。但是,请注意,在最坏的情况下,此列表的长度可能与图中节点的数量呈指数关系。

(这被称为 find_cliques,但它也与您的问题有关)。

这意味着,如果有大量的派系,您使用 list 创建的字符串将非常多,您可能会耗尽内存:字符串需要比 int 值更多的空间来保存。 我不知道是否有解决方法。