首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在应用sklearn.Linear_model.LinearRegression时限制CPU的使用?

问如何在应用sklearn.Linear_model.LinearRegression时限制CPU的使用?
EN

Stack Overflow用户
提问于 2020-01-01 14:35:52
回答 1查看 3.4K关注 0票数 4

我需要限制以下命令的CPU使用,因为它使用了100%的CPU。

代码语言:javascript
复制
    from sklearn.linear_model import LinearRegression
    model = LinearRegression(fit_intercept = True, n_jobs = 1)
    model.fit(df_x0, df_y0)
    model.predict(df_x1)

我已经设置了n_jobs == 1,并且我没有使用多进程,但是它仍然使所有内核和df_y0都占用了全部的CPU。ndim == 1,我了解到如果是这样的话,n_jobs就不会有效。

有人能告诉我为什么它使用100%的CPU,以及如何在python中解决它吗?

Python 3.7,Linux。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-01 15:15:44

对于n_jobs=1,它使用其中一个核心的100%的CPU。每个进程在不同的核心中运行,每个进程都100%地使用给定的核心。在具有4个内核的Linux中,可以清楚地看到CPU的使用情况:

  • (100%,~5%, ~5%, ~5%)在运行n_jobs=1时(如果将n_jobs指定为1,则只使用一个核心)。
  • (100%, 100%, 100%, 100%)在与n_jobs=-1一起运行时(如果您将n_jobs指定为-1,它将使用all )。

此外,您还可以根据他使用scikit的测试-在Linux下学习0.20.3,查看@kenlukas answer。

更新:实现所有问题Unintended multithreading in Python (scikit-learn)的场景,请查看答案

如果您希望动态地设置线程数,而不是通过环境变量全局设置线程数,如下所示:

代码语言:javascript
复制
import mkl
mkl.set_num_threads(2)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59553393

复制
相关文章

相似问题

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