Ошибка памяти Python Networkx на небольшом наборе данных - PullRequest
2 голосов
/ 27 марта 2012

У меня относительно небольшой набор данных, состоящий из ~ 100 тыс. Ребер и ~ 7000 узлов. Я пытаюсь использовать два алгоритма, чтобы найти сообщества в моем наборе данных. Я добавил ребра и приступил к выполнению алгоритма, который был реализован здесь: http://perso.crans.org/aynaud/communities/#as-python-module

Данные в основном следующие:

Node1, Node2

Узел 1 связан с узлом 2, а график не является ненаправленным.

Но программа просто запускается немного, а затем выдает ошибку памяти. Я знаю, что это работает, потому что я проверил его на небольшом наборе данных, и он работает правильно, но он дает мне ошибку памяти. Я не знаю много об этих алгоритмах, но у меня сложилось впечатление, что у меня действительно небольшой набор данных, и я запускаю его на своем персональном домашнем компьютере. Это просто проблема с самой реализацией или из-за ограничений моей машины?

Может быть, у кого-нибудь из вас есть идея, как заставить это работать (то есть другое программное обеспечение или алгоритм), помимо запуска его на сервере с гораздо большим объемом памяти?

Спасибо!

отслеживающий:

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 Ответ

2 голосов
/ 10 февраля 2016

Я понимаю, что это старый вопрос, но NetworkX по-прежнему имеет проблемы с памятью, особенно при работе с такими алгоритмами, как communities.

Проверьте Graph-Tool . Это пакет python, который имеет гораздо более высокую производительность, чем NetworkX

Я не связан с graph-tool. Это решило проблемы с памятью для меня с точки зрения запуска алгоритмов в больших сетях.

Попробуйте преобразовать ваш nodes в integers, если вы еще этого не сделали. Я обнаружил, что узлы, помеченные как строки, могут занимать много памяти.

Счастливое общение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...