首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >限制XGBoost使用的线程数

限制XGBoost使用的线程数
EN

Stack Overflow用户
提问于 2018-01-15 19:06:14
回答 4查看 3.7K关注 0票数 5

我希望将XGBoost用于在线生产目的(Python2.7 XGBoost API)。为了能够做到这一点,我想控制和限制XGBoost在预测操作中使用的线程数。

我正在使用XGBoost (xgboost.XGBRegressor)提供的与sklearn兼容的回归器,并试图在回归器的构造函数中使用param n线程来将使用的最大线程限制为1。

不幸的是,XGBoost继续使用多个线程,而不管在n线程中设置了什么值。

还有其他方法来限制XGBoost并迫使它使用n=1线程执行预测操作吗?

EN

回答 4

Stack Overflow用户

发布于 2018-10-15 08:20:44

我遇到了同样的问题,并想出了答案。正确的答案是设置系统环境变量。对于python脚本:

代码语言:javascript
复制
import os
os.environ['OMP_NUM_THREADS'] = "1"

会起作用的。

在导入任何其他包之前,请确保将这两行放在一起,否则它可能无法工作。

票数 9
EN

Stack Overflow用户

发布于 2018-01-16 06:13:35

答:标准的set_params (带n线程的)失败,但当使用regr._Booster.set_param('nthread', 1)时,我可以将XGBoost限制为使用单个线程。

如上所述,env变量OMP_NUM_THREADS=1也可以工作。

票数 1
EN

Stack Overflow用户

发布于 2020-11-18 17:59:33

目前,n_jobs可用于在预测时间限制线程:

model._Booster.set_param('n_jobs', 2)

更多信息

以前(但现在不推荐):

model._Booster.set_param('nthread', 2)

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

https://stackoverflow.com/questions/48269248

复制
相关文章

相似问题

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