gpt4 book ai didi

python - 应用sklearn.Linear_model.LinearRegression时如何限制CPU使用率?

转载 作者:太空宇宙 更新时间:2023-11-03 19:55:40 25 4
gpt4 key购买 nike

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

    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。

最佳答案

使用 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 code> 更改为 -1,它将使用所有核心)。

另外,您可以查看@kenlukas answer基于他在 Linux 下使用 scikit-learn 0.20.3 进行的测试

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

如果您想动态设置线程数,而不是通过环境变量全局设置,例如:

import mkl
mkl.set_num_threads(2)

关于python - 应用sklearn.Linear_model.LinearRegression时如何限制CPU使用率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59553393/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com