2012-03-27 12 views
2

Ich habe einen relativ kleinen Datensatz bestehend aus ~ 100k Kanten und ~ 7000 Knoten. Ich versuche zwei Algorithmen zu verwenden, um Communities in meinem Dataset zu finden. Ich fügte hinzu, die Kanten und fuhr fort, einen Algorithmus auszuführen, die hier umgesetzt wurde: http://perso.crans.org/aynaud/communities/#as-python-modulePython networkx Speicherfehler auf kleinem Dataset

Daten ist im Grunde wie folgt:

Node1, Knoten2

Node1 ist mit Knoten 2 und der Graph ungerichtet.

Aber das Programm läuft nur für ein bisschen, dann gibt mir einen Speicherfehler. Ich weiß, dass es funktioniert, weil ich es auf einem kleinen Dataset prüfte, und es funktioniert richtig, aber es gibt mir einen Gedächtnisfehler. Ich weiß nicht viel über diese Algorithmen, aber ich hatte den Eindruck, dass der Datensatz, den ich habe, sehr klein ist und ich ihn auf meinem persönlichen Heimcomputer verwende. Ist das nur ein Problem mit der Implementierung selbst oder aufgrund der Einschränkungen meiner Maschine?

Hätte jemand von Ihnen eine Idee, wie Sie dies zum Laufen bringen können (d. H. Eine andere Software oder einen anderen Algorithmus), anstatt es auf einem Server mit viel mehr Speicher laufen zu lassen?

Danke!

Zurückverfolgungs:

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

Traceback, bitte. – kristaps

+0

Ok hinzugefügt Traceback – Paul

+0

@Paul: Fehler scheint beim Versuch zu passieren, das Netzwerk zu zeichnen. Wenn Sie nicht zeichnen müssen, entfernen Sie diese Teile, versuchen Sie es erneut und sehen Sie, ob Sie einen Fehler erhalten. – Avaris

Antwort

1

Ich weiß, das eine alte Frage ist aber NetworkX hat immer noch vor allem Speicherprobleme, wenn sie mit Algorithmen wie communities zu tun.

Auscheckengraph-tool. Es ist ein python Paket, das viel schnellere Leistung bietet als NetworkX

Ich bin nicht mit graph-tool verbunden. Es hat Speicherprobleme für mich in Bezug auf die Ausführung von Algorithmen in großen Netzwerken gelöst.

Versuchen Umwandlung Ihre nodes-integers, wenn Sie nicht bereits getan haben. Ich habe festgestellt, dass Knoten, die als Strings bezeichnet werden, viel Speicher belegen können.

Glückliche Vernetzung