如何限制sklearn GridSearchCV CPU使用率?

How to limit sklearn GridSearchCV cpu usage?

提问人:Jim Chen 提问时间:10/30/2023 最后编辑:desertnautJim Chen 更新时间:11/2/2023 访问量:40

问:

我使用如下:GridSearchCV

gsearch_lgb = GridSearchCV(
    model(**self.model_params),
    param_grid=self.model_params,
    n_jobs=2,
    verbose=99,
    scoring=self.cv_scoring,
    cv=4,
)

但是 joblib 仍然使用我的所有内核:

enter image description here

我也尝试过,因为 sklearn 文档说 “对于低于 -1 的n_jobs,使用 (n_cpus + 1 + n_jobs)”n_jobs=-19

但仍然无法正常工作,我所有的 cpu 都被使用了。

我应该如何修改代码以降低 CPU 使用率?

python scikit-learn 并行处理 joblib

评论

0赞 Nick ODell 10/30/2023
如果在没有 GridSearchCV 的情况下调用模型,您的模型是否并行运行?
0赞 Nick ODell 10/30/2023
您的模型是否由于 BLAS 并行性而并行运行?我建议使用 threadpoolctl 来控制这一点。
0赞 Matt Hall 10/31/2023
最小的可重复示例?stackoverflow.com/help/minimal-reproducible-example

答:

0赞 Jim Chen 11/1/2023 #1

事实证明,我必须设置为 lgbm。Regressor 参数,因此总 CPU 使用率为:n_jobs

total_cpu = GridSeaechCV.fit n_jobsxlgbm.fit n_jobs