Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python RandomizedSearchCV并行:调度的作业太多导致NaN丢失?_Python_Keras_Scikit Learn_Parallel Processing_Hyperparameters - Fatal编程技术网

Python RandomizedSearchCV并行:调度的作业太多导致NaN丢失?

Python RandomizedSearchCV并行:调度的作业太多导致NaN丢失?,python,keras,scikit-learn,parallel-processing,hyperparameters,Python,Keras,Scikit Learn,Parallel Processing,Hyperparameters,只是提醒一下:我对机器学习和并行计算的世界都相当陌生。我会尽我所能使用正确的术语,但友好的更正将不胜感激 我一直在尝试使用sklearn的RandomizedSearchCV为Keras MLP(运行在TensorFlow之上)调整超参数,根据大量教程将我的模型包装在KerasClassifier中。我一直在尝试通过RandomizedSearchCV的内置系统来并行这个过程。这或多或少是正常的,但当我开始使用大约6个线程时,程序仍然会运行,但我会开始丢失,这会导致搜索结束后出现错误 现在,我知

只是提醒一下:我对机器学习和并行计算的世界都相当陌生。我会尽我所能使用正确的术语,但友好的更正将不胜感激

我一直在尝试使用sklearn的RandomizedSearchCV为Keras MLP(运行在TensorFlow之上)调整超参数,根据大量教程将我的模型包装在KerasClassifier中。我一直在尝试通过RandomizedSearchCV的内置系统来并行这个过程。这或多或少是正常的,但当我开始使用大约6个线程时,程序仍然会运行,但我会开始丢失,这会导致搜索结束后出现错误

现在,我知道有很多关于梯度爆炸的常见疑点,但这里有一些有趣的事情:当我充分减少
预调度
时,这个问题就消失了(在这种情况下,减少到
n个作业
,而不是
2*n个作业

这有什么原因吗?我的数据集相当大,但似乎一旦搜索开始,每个作业只使用大约1-2%的可用内存(而且,当我剪切预调度的作业时,这一百分比不会改变),并且我没有遇到任何其他内存使用问题


第二,从更实际的角度来看,有没有什么简单的方法可以让我的代码在NaN丢失时立即进入RandomSearchCV?这将节省一些时间,而不是让它一直运行到搜索结束——如果完全实现,可能需要一天或更长时间——然后抛出错误。我也在考虑将
error\u score
改为-1或其他什么。这样会更好吗?我认为可能值得知道的是,超参数的某些组合会导致梯度爆炸,但如果这仅仅是因为这个并行化问题,那就不是了。

试着把
error\u score='raise'
放在
RandomSearchCV
里面……它有一个抑制错误并返回NaN的坏习惯,而不是试着把
error\u score='raise'
放在
RandomSearchCV
里面……它有一个抑制错误并返回NaN的坏习惯相反,NaN