使用以下代码会导致内存溢出:
import numpy as np
a = np.arange(10000000)
np.save('a', a)
l = []
while True:
l.append(np.load('a.npy'))
Python 错误出段错误,而不是内存错误。对于像 AWS EC2 这样没有交换内存的机器来说似乎就是这种情况(我尝试过使用具有更多 RAM 和交换内存的机器,但出现了 MemoryError)。
最佳答案
我在下面为您提供了多种资源供您浏览,但是通常这在很大程度上取决于操作系统/系统。 SegFlts
简单答案:您可能会得到它,因为您尝试访问内存中不存在的内存地址。 当您的内存模块出现问题或由于以下任何原因时,也可能会出现segFaults(这些应该可以消除您的疑虑):
查看:Segfault instead of MemoryError when bytearray too big
另外,为什么会出现段错误? Possible answer
追踪 SegFault(如果您仍然觉得有些可疑!):python tracing a segmentation fault
提出的问题实际上很广泛,因为它的答案可能需要几页的解释(因此添加了相关链接)。
关于python - Numpy load() 内存溢出导致段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37367047/