最近在kaggle kernel上跑程序,kernel commit以后经常会跑到一半就显示完成了,且没有任何报错。大佬们说这是内存/显存/硬盘不足导致的,而我的问题则是由内存不足导致。
对已经销毁的对象,Python不会自动释放其占据的内存空间。为了能够充分地利用分配的内存,避免程序跑到一半停止,要时不时地进行内存回收,这时候gc(garbage collector)就隆重登场啦!
用gc模块进行垃圾回收非常简单,如下所示:
# 加载gc模块
import gc
# 垃圾回收
# gc.collect() 返回处理这些循环引用一共释放掉的对象个数
gc.collect()
更详细请参考:【Python】 垃圾回收机制和gc模块
网友评论