如果在Keras内部多次使用同一个Model,例如在不同的数据集上训练同一个模型进而得到结果,会存在内存泄露的问题。在运行几次循环之后,就会报错OOM。
解决方法是在每个代码后面接clear_session()函数,显示的关闭TFGraph,再重启。
详情参考 https://keras.io/backend/#backend-functions。
from keras import backend as K
K.clear_session()
补充知识:Keras多次加载模型进行测试时内存
在训练深度学习模型的时候,通常将数据集切分为训练集和验证集.Keras提供了两种评估模型性能的方法:
使用自动切分的验证集
使用手动切分的验证集
一.自动切分
在Keras中,可以从数据集中切分出一部分作为验证集,并且在每次迭代(epoch)时在验证集中评估模型的性能.
具体地,调用model.fit()训练模型时,可通过validation_split参数来指定从数据集中切分出验证集的比例.
# MLP with automatic validation set
from keras.mod