def fun():
n = 300
features = [[0 for i in range(0, n)] for j in range(0, n)]
for i in range(n):
for j in range(i, n):
features[i][j] = [np.random.random((300,300))]
return
for i in range(10000):
fun()
特征只是局部变量,应该在有趣的回归后收集。为什么会导致内存泄漏?
答案 0 :(得分:3)
您的代码存储了300 * 300 * 300 * 300个浮点数。每个浮点数8个字节(numpy浮点数的默认值)超过64 GB。我怀疑这就是你遇到记忆问题的原因。
但这不是内存泄漏。你真的想制作4D野兽矩阵吗?如果您只想要300 x 300,看起来像np.random.random((300, 300))
就可以了。见http://docs.scipy.org/doc/numpy-1.10.0/reference/generated/numpy.random.random.html#numpy.random.random