使用多个GPU的GridSearchCV中“ n_jobs == 1”的含义

时间:2018-09-03 11:08:51

标签: scikit-learn keras

我一直在使用Keras框架和4个NVIDIA GPU训练NN模型。 (数据行数:〜160,000,列数:5)。现在,我想使用GridSearchCV优化其参数。

但是,每当我尝试将n_jobs更改为除一个以外的其他值时,都会遇到几个不同的错误。错误,例如

CUDA OUT OF MEMORY
Can not get device properties error code : 3

然后我阅读了此网页, “#如果您未使用GPU,则可以将n_jobs设置为1以外的值” http://queirozf.com/entries/scikit-learn-pipeline-examples

因此无法将多个GPU与GridSearchCV一起使用吗?

[环境] Ubuntu 16.04 的Python 3.6.0 Keras / Scikit-Learn

谢谢!

1 个答案:

答案 0 :(得分:3)

根据scikit Learn中的常见问题解答-不支持GPU。 Link

您可以使用n_jobs来使用CPU内核。如果要以最快的速度运行,则可能要使用几乎所有内核:

import multiprocessing
n_jobs = multiprocessing.cpu_count()-1