Scikit learn “的含义;n_jobs==1“;在GridSearchCV中使用多个GPU
我一直在使用Keras框架和4个NVIDIA GPU来训练NN模型。(数据行数:~160000,列数:5)。现在我想使用GridSearchCV优化它的参数 然而,每当我试图将n_作业更改为一个以外的值时,我都会遇到几个不同的错误。错误,例如Scikit learn “的含义;n_jobs==1“;在GridSearchCV中使用多个GPU,scikit-learn,keras,Scikit Learn,Keras,我一直在使用Keras框架和4个NVIDIA GPU来训练NN模型。(数据行数:~160000,列数:5)。现在我想使用GridSearchCV优化它的参数 然而,每当我试图将n_作业更改为一个以外的值时,我都会遇到几个不同的错误。错误,例如 CUDA OUT OF MEMORY Can not get device properties error code : 3 然后我看了这个网页,, #如果您不使用GPU,可以将n#U作业设置为1以外的值 所以不可能将多个GPU与GridSearch
CUDA OUT OF MEMORY
Can not get device properties error code : 3
然后我看了这个网页,,
#如果您不使用GPU,可以将n#U作业设置为1以外的值
所以不可能将多个GPU与GridSearchCV一起使用
[环境]
Ubuntu 16.04
Python 3.6.0
Keras/Scikit学习
谢谢 根据scikit learn中的常见问题解答,不支持GPU 您可以使用
n_作业
来使用CPU核心。如果您希望以最高速度运行,您可能希望使用几乎所有的内核:
import multiprocessing
n_jobs = multiprocessing.cpu_count()-1
他使用的是Keras(我想是sklearn包装器),所以支持GPU(如果后端支持的话)。使用所有内核会挂起其他进程的执行吗?你能详细解释一下为什么只使用一个内核会更好吗?使用所有的内核会减慢你计算机中的其他一切(它甚至可能不会为你的“程序”进行优化,但我不确定这种说法)。试试看。你在Keras使用什么后端?在@MarcusV之后。注释,请添加您正在使用的代码(特别是包含导入和
GridSearch
部分的代码)