我想对不同的机器学习模型进行公平的比较。但是,我发现岭回归模型会自动使用多个处理器,并且没有参数可以限制使用的处理器数量(例如n_jobs)。有什么办法可以解决这个问题吗?
一个最小的例子:
from sklearn.datasets import make_regression
from sklearn.linear_model import RidgeCV
features, target = make_regression(n_samples=10000, n_features=1000)
r = RidgeCV()
r.fit(features, target)
print(r.score(features, target))
最佳答案
如果将环境变量 OMP_NUM_THREADS
设置为 n
,您将获得预期的行为。例如。在 Linux 上,在终端中执行 export OMP_NUM_THREADS=1
以将使用限制为 1 个 cpu。
根据你的系统,你也可以直接在python中设置。参见例如How to set environment variables in Python?
关于scikit-learn - 如何限制 sklearn 中岭回归模型使用的处理器数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65377950/