Keras:完成训练后释放记忆

J. *_*hao 7 python keras

我使用Keras构建了一个基于CNN结构的自动编码器模型,在完成训练过程后,我的笔记本电脑有64GB内存,但我注意到至少1/3的内存仍然被占用,而GPU内存也是如此.我没有找到一个释放内存的好方法,我只能通过关闭Anaconda Prompt命令窗口和jupyter笔记本来释放内存.我不确定是否有人有好的建议.谢谢!

Rav*_*euk 10

释放RAM内存

要释放RAM内存,只需del Variables按照注释中@nuric的建议进行操作即可.

释放GPU内存

这比释放RAM内存有点棘手.有些人会建议您使用以下代码(假设您使用的是keras)

from keras import backend as K
K.clear_session()
Run Code Online (Sandbox Code Playgroud)

但是,上述代码并不适用于所有人.(即使你尝试del Models,它仍然无法工作)

如果上述方法不适合您,请尝试以下方法(您需要先安装numba库):

from numba import cuda
cuda.select_device(0)
cuda.close()
Run Code Online (Sandbox Code Playgroud)

其背后的原因是: Tensorflow只是为GPU分配内存,而CUDA负责管理GPU内存.

如果CUDA在您清除了所有图形之后以某种方式拒绝释放GPU内存K.clear_session(),那么您可以使用cuda库直接控制CUDA以清除GPU内存.