gpt4 book ai didi

python - 在 Spyder IDE 中释放 matplotlib 内存

转载 作者:太空宇宙 更新时间:2023-11-04 05:41:10 27 4
gpt4 key购买 nike

如果我运行下面的代码

import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
import scipy.misc
import gc

def plot(i):
lena = scipy.misc.lena()
fig = plt.figure(frameon=False,figsize=(2.,2.),dpi=256)
ax = fig.add_axes([0, 0, 1, 1])
ax.axis('off')
ax.imshow(lena, cmap=plt.cm.gray)
filename = '/tmp/test_{:03d}.png'.format(i)
with open(filename, 'w') as outfile:
fig.canvas.print_png(outfile)
plt.close(fig)
del fig
gc.collect()

for i in range(100):
plot(i)
print(i)

在 Spyder(gentoo linux 上的版本 2.3.5.2,使用 python 2.7.10,IPython 3.2.1)中,我看到内存随着迭代次数 i 线性增加,直到我最终耗尽内存。 “在 Spyder 中运行”是指标记文本并按 F9。但是,如果我在分离的 IPython 终端中运行它,内存消耗将保持不变。

有没有办法在使用 matplotlib 后强制释放 Spyder 中的内存,特别是当输出转到文件而不是 Spyder 内部 IPython 终端时?

最佳答案

我在绘制 1000 个地 block 时遇到了类似的问题。在关闭绘图之前,我使用了命令 plt.show()。然后我使用了 plt.close() 和垃圾收集等...这显着减少了内存泄漏。虽然我不知道确切原因,但我发现 plt.show() 可以为我处理内存问题。

关于python - 在 Spyder IDE 中释放 matplotlib 内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33858986/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com