GridSearchCV 在 keras LSTM 模型上的训练是 "killed" 没有明确的原因

GridSearchCV training on a keras LSTM model is "killed" without a clear reason

我被一个超级奇怪的问题难住了。我正在尝试使用 sklearn 分类器和 GridSearchCV 训练一个简单的 LSTM 模型。在多个作业上使用 gridsearch,代码会挂起而没有任何输出;对于单个作业,进程将被以上输出终止:

2018-02-17 18:15:02.733824: I tensorflow/core/platform/cpu_feature_guard.cc:137] Your CPU supports instructions that this TensorFlow binary was not compiled to use: SSE4.1 SSE4.2 AVX
234/234 [==============================] - 0s 1ms/step
935/935 [==============================] - 1s 626us/step
234/234 [==============================] - 0s 2ms/step
935/935 [==============================] - 1s 684us/step
234/234 [==============================] - 1s 2ms/step
935/935 [==============================] - 1s 684us/step
234/234 [==============================] - 1s 2ms/step
935/935 [==============================] - 1s 547us/step
...
...
234/234 [==============================] - 4s 16ms/step
935/935 [==============================] - 1s 1000us/step
Killed

有谁知道是什么杀死了 GridSearchCV?

您的 python 进程正在被 Linux 内核的 OOM 杀手杀死,因为系统内存不足并且 python 正在请求更多。

既然你在做 cross-validation,我假设你也在使用 TensorFlow 作为后端,在这种情况下,它可能是 Keras/TF 中的一个错误,因为会话没有被清除。 https://github.com/keras-team/keras/issues/2102

中的更多信息

一个快速的解决方案是在每次 CV 迭代后使用 keras.backend.clear_session。如果您没有使用 TF 后端,那么它可能是您自己的代码中的错误。