首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何处理多处理?

如何处理多处理?
EN

Stack Overflow用户
提问于 2020-11-20 05:31:02
回答 1查看 35关注 0票数 0

我尝试使用程序的这一部分来调优XGBoost中的学习速率参数:

代码语言:javascript
复制
model = XGBClassifier()
learning_rate = [0.0001, 0.001, 0.01, 0.1, 0.2, 0.3]
param_grid = dict(learning_rate=learning_rate)
kfold = StratifiedKFold(n_splits=10, shuffle=True, random_state=7)
grid_search = GridSearchCV(model, param_grid, scoring="neg_log_loss", n_jobs=-1, cv=kfold)
grid_result = grid_search.fit(X, label_encoded_y)

但是在这一行GridSearchCV: ImportError中出现了一个错误,它试图在不支持分叉的系统上执行并行计算而不保护您的导入。要在脚本中使用并行计算,必须使用'if name == ' main ‘保护主循环。

但是,当我将n_jobs=-1的值更改为n_jobs=1时,错误就会消失,但我希望它能够使用所有内核运行。拜托,我怎么才能克服这个错误呢?

EN

回答 1

Stack Overflow用户

发布于 2020-11-20 05:39:16

将主循环放在上面(以及任何其他必要的代码)到一个名为main()的函数中,在脚本的末尾放置if __name__ == '__main__': main(),这样,当您将脚本内容导入到其他程序时,您将保护循环避免意外启动。

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

https://stackoverflow.com/questions/64924304

复制
相关文章

相似问题

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