在 NetworkX 中创建大图时出现内存错误
Posted
技术标签:
【中文标题】在 NetworkX 中创建大图时出现内存错误【英文标题】:Memory error creating large graphs in NetworkX 【发布时间】:2020-10-18 14:06:59 【问题描述】:我决定使用 Python 来处理图形。我使用 NetworkX 加载边缘列表来构建图形。当我尝试使用nx.read_edgelist
加载边缘时,我收到MemoryError
。
该图有 400 万个节点和 3400 万条边,我的 PC 有 12GB 的 RAM。是否可以将该图加载到 12GB 中?有没有最优解?
【问题讨论】:
【参考方案1】:NetworkX 使用字典来实现图形数据结构。每个边使用至少 100 字节的内存。因此,如果有 3400 万条边,您可能需要超过 40 GB。
一种解决方案是使用云计算并根据需要扩展内存。
NetworkX 的替代品是graph-tool,它是一个 Python 模块,用 C++ 实现核心数据结构和算法。
另见
What scalability issues are associated with NetworkX? Benchmark of popular graph/network packages.【讨论】:
以上是关于在 NetworkX 中创建大图时出现内存错误的主要内容,如果未能解决你的问题,请参考以下文章
错误 PHP - 无法分配内存(laravel + aws)