首页 > 解决方案 > GridSearchCV中“n_jobs == 1”的含义与使用多个GPU

问题描述

我一直在使用带有 4 个 NVIDIA GPU 的 Keras 框架来训练 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

那么GridSearchCV不能使用多个GPU吗?

【环境】Ubuntu 16.04 Python 3.6.0 Keras / Scikit-Learn

谢谢!

标签: scikit-learnkeras

解决方案


根据 scikit learn 中的常见问题解答 - 不支持 GPU。关联

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

import multiprocessing
n_jobs = multiprocessing.cpu_count()-1

推荐阅读