问题描述

在做YOLO这个目标检测算法的时候,项目需要构建自己的数据集。该数据集需要使用python中matplotlib.pyplot的plt函数来绘制大量的图片数据集。使用plt.savefig()保存图片,然而题主发现,开始的时候保存的频率很高,但保存频率会逐渐降低,一小时之后,好几分钟才能保存一张图片!为此开始查找解决方案。

问题分析

随着时间的增长,plt保存图片的频率逐渐降低,说明应该是有资源被堆积,可能存在内存泄漏!为此题主观察PC的内存变化,果然内存越用越多,说明没有及时的清理内存。

解决方案

找到了时内存的问题,经过调研发现,plt并不会自动清理掉内存,需要调用plt.clf()来清理,即在plt.savefig()后加入plt.clf()即可。

// An example of the problem
plt.savefig(name_of_path);
plt.clf()
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐