首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >运行RandomizedSearchCV以调优大数据的LightGBM回归器

运行RandomizedSearchCV以调优大数据的LightGBM回归器
EN

Stack Overflow用户
提问于 2019-12-11 16:35:29
回答 1查看 2.7K关注 0票数 0

我正在为一个包含22个特性的300万点的数据集训练一个LightGBM回归模型。我正在尝试使用RandomizedSearchCV.It来调优模型的超参数,这需要很长时间。我正在使用谷歌云上的虚拟机,它有24个CPU核和32G内存。

当我尝试使用所有CPU内核进行随机搜索时,或者大多数CPU内核如下所示:

代码语言:javascript
运行
复制
# Use the random grid to search for best hyperparameters
# First create the base model to tune
lgbm = lgb.LGBMRegressor()
# Random search of parameters, using 2 fold cross validation, 
# search across 100 different combinations, and use all available cores
lgbm_random = RandomizedSearchCV(estimator = lgbm, param_distributions = random_grid, 
                         n_iter = 100, cv = 2, scoring='neg_mean_absolute_error',
                          verbose=10, random_state=42, n_jobs = 18)

它以以下错误结束:

执行器管理的工作进程意外终止。这可能是由于调用函数时发生了分段错误,或者是由于过多的内存使用导致操作系统杀死了工作人员。工人的出口代码是{SIGKILL(-9)}

我怎样才能正常使用所有的CPU核心来完成这个任务呢?

在GPU上而不是CPU上运行随机搜索会有什么不同吗?有多少核心的GPU适合做这项工作?

EN

回答 1

Stack Overflow用户

发布于 2019-12-12 01:21:40

我认为您应该将n_jobsRandomizedSearchCV中删除,这将解决问题。您可以指定num_threads在LightGBM超参数中使用并行学习(它是LGB中的alias of n_jobs )。

根据官方指南,不建议使用机器的所有线程。您应该使用比CPU内核线程更少的东西。

对于并行学习,不要使用所有CPU核,因为这会导致网络通信性能差。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59290266

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档