Keras Sklearn RandomizedSearchCV GPU OOM 错误
Posted
技术标签:
【中文标题】Keras Sklearn RandomizedSearchCV GPU OOM 错误【英文标题】:Keras Sklearn RandomizedSearchCV GPU OOM error 【发布时间】:2018-08-20 08:02:52 【问题描述】:我想将 RandomizedSearchCV(或 GridSearchCV)应用到我的 Keras 模型(TensorFlow 后端)。但是用不同的超参数集训练几次后,出现OOM错误。
以下是我的代码和错误消息。我该如何解决这个问题?提前致谢。
def build_model(num_filters = 10,
num_classes = 6,
sequence_max_length=512,
vocab_size=71,
embedding_size=16,
learning_rate=0.001,
dropout = 0.2,
top_k=3,
embedding_matrix = None,
model_path=None):
... do something
return model
keras_model = KerasClassifier(build_fn=build_model,
embedding_matrix = embedding_matrix)
random_search_model = RandomizedSearchCV(keras_model,
n_iter = 5,
param_distributions = hparm_dist,
refit = True,
n_jobs = 1)
错误信息:
ResourceExhaustedError (see above for traceback): OOM when allocating tensor with shape[471512,300]
更新:
通过在 sklearn.cross_validation._fit_and_score 的末尾添加 keras.backend.clear_session() 解决。
【问题讨论】:
【参考方案1】:您可以尝试将 'pre_dispatch' 参数更改为 1。By default it is 2*n_jobs
random_search_model = RandomizedSearchCV(keras_model,
n_iter = 5,
param_distributions = hparm_dist,
refit = True,
pre_dispatch=1,
n_jobs = 1)
【讨论】:
原来我犯了一个愚蠢的错误。添加 keras.backend.clear_session() 剂量工作。以上是关于Keras Sklearn RandomizedSearchCV GPU OOM 错误的主要内容,如果未能解决你的问题,请参考以下文章
你需要一个神经网络(keras)来使用分类器(sklearn)[关闭]
如何在 sklearn 的 AdaBoost 中使用 Keras 模型?
sklearn 管道 + keras 顺序模型 - 如何获取历史记录?