如何利用Keras高效应对超内存的Out Of Memory问题?
- 内容介绍
- 文章标签
- 相关推荐
本文共计403个文字,预计阅读时间需要2分钟。
如果在Keras内部多次使用同一Model,例如在不同的数据集上训练同一模型,可能会存在内存泄漏的问题。在运行几次循环后,可能会报错OOM(Out of Memory)。解决方法是,在每个代码块后面添加`'end'`来释放内存。
如果在Keras内部多次使用同一个Model,例如在不同的数据集上训练同一个模型进而得到结果,会存在内存泄露的问题。在运行几次循环之后,就会报错OOM。
解决方法是在每个代码后面接clear_session()函数,显示的关闭TFGraph,再重启。
详情参考 keras.io/backend/#backend-functions。
from keras import backend as K
K.clear_session()
补充知识:Keras多次加载模型进行测试时内存溢出的解决方法
在进行实验的过程中,保存了每个epoch的模型参数文件,需要验证每个保存的模型的效果,想到直接简单粗暴的手法,就是一个循环里加载模型并进行验证,但是导致随着加载的模型越来越多,速度越来越慢。
方法如下:在每次加载模型之前,清空模型占用的内存即可。
本文共计403个文字,预计阅读时间需要2分钟。
如果在Keras内部多次使用同一Model,例如在不同的数据集上训练同一模型,可能会存在内存泄漏的问题。在运行几次循环后,可能会报错OOM(Out of Memory)。解决方法是,在每个代码块后面添加`'end'`来释放内存。
如果在Keras内部多次使用同一个Model,例如在不同的数据集上训练同一个模型进而得到结果,会存在内存泄露的问题。在运行几次循环之后,就会报错OOM。
解决方法是在每个代码后面接clear_session()函数,显示的关闭TFGraph,再重启。
详情参考 keras.io/backend/#backend-functions。
from keras import backend as K
K.clear_session()
补充知识:Keras多次加载模型进行测试时内存溢出的解决方法
在进行实验的过程中,保存了每个epoch的模型参数文件,需要验证每个保存的模型的效果,想到直接简单粗暴的手法,就是一个循环里加载模型并进行验证,但是导致随着加载的模型越来越多,速度越来越慢。
方法如下:在每次加载模型之前,清空模型占用的内存即可。

