2017-08-02 4 views
0

私はnetworkxのread_edgelist関数を使って、ファイル(500Mb)、G(nodes = 2.3M、edges = 33M)からグラフのエッジを読み込み、マシンのメモリ全体を使用します。グラフ全体を読み込みます。 スパースグラフソリューションや他のライブラリを使用してこの問題を処理する方法はありますか?pythonでnetworkxのread_edgelistでメモリ使用量を処理する方法はありますか?

+0

あなたの質問に直接答えるには:はい、あなたが言及した方法のいずれかを使用してこれを処理する方法があります。特定のテクニックについての推奨が必要な場合は、それはSOの範囲外です。 –

答えて

0

NetworkXはスパース表現を使用します。 read_edgelistはファイルを1行ずつ読み込みます(つまり、ファイル全体を一度に読み込むわけではありません)。

したがって、NetworkXがあまりにも多くのメモリを使用すると、これは実際にはメモリ内のグラフ全体を表すために必要なことです。

可能な解決策は、ファイルを自分で読み取って、できるだけ多くのエッジを破棄してからNetworkXに送ることです。

関連する問題