【问题标题】:GridSearchCV with n_jobs=-1 is not working for Decision Tree/Random Forest classificationn_jobs=-1 的 GridSearchCV 不适用于决策树/随机森林分类
【发布时间】:2020-06-28 22:54:28
【问题描述】:

我正在尝试使用 GridSearchCV 来评估具有不同参数集的不同模型。逻辑回归和 k-NN 不会导致问题,但决策树、随机森林和其他一些类型的分类器在 n_jobs=-1 时不起作用。

for classifier, paramSet, classifierName in zip(list_classifiers, list_paramSets, list_clfNames):
    gs = GridSearchCV(
                      estimator = classifier,
                      param_grid = paramSet,
                      cv = 10,      
                      n_jobs = -1           
                    )
    gs.fit(X_train, y_train)
    plot_learning_curve(gs, "Learning Curve", X_train, y_train, n_jobs=-1)

我正在使用 Google Colab,但以下任一解决方案建议都没有解决我的问题。

from sklearn.externals.joblib import parallel_backend
clf = GridSearchCV(...)
with parallel_backend('threading',n_jobs = -1):
    clf.fit(x_train, y_train)
if __name__ == "__main__":
    import multiprocessing as mp; mp.set_start_method('forkserver', force=True) // 'spawn' has also failed
    /// Gridsearch and fit here ///

这是我的源代码:https://github.com/bahadirbasaran/pulsarDetection/blob/master/main.ipynb

错误日志:

任何帮助将不胜感激!

【问题讨论】:

  • 什么操作系统?您尝试将代码放在if __name__ == "__main__": 下?以及两者的结合,所以 import ... parallel_backend 位于代码顶部,并将 for classifier... 循环放在 with parallel_backend... 子句中。不熟悉multiprocessing...
  • @E.Bassett 我的系统是 Linux Mint,但代码可以在 Google Colab 上运行。

标签: python multithreading scikit-learn data-science grid-search


【解决方案1】:

您不需要使用任何额外的调用来创建线程。您的第一个代码 sn-p 应该可以工作。如果你打电话:

n_cpus = multiprocessing.cpu_count()

它返回什么? 如果您使用它然后通过n_jobs=n_cpusn_jobs=n_cpus-1(如果您不希望您的计算机挂钩),看看它是否有效。 来自 sklearn 逻辑回归文档:

n_jobs int, default=None 并行化时使用的 CPU 内核数 如果 multi_class='ovr' 则超过类。该参数被忽略时 求解器设置为“liblinear”,无论“multi_class”是否为 指定与否。

因此,可能正在运行的模型实际上使用的 CPU 不超过 1 个。

希望这些想法对您有所帮助。

【讨论】:

  • 我正在研究 Google Colab。 multiprocessing.cpu_count() 返回 2。当我使用 n_jobs = 2 时,没有任何变化。代码又冻结了。
猜你喜欢
  • 2017-03-15
  • 2020-08-16
  • 2016-03-24
  • 2018-07-29
  • 2021-02-26
  • 2021-03-24
  • 2018-12-01
  • 2018-06-22
  • 2017-08-05
相关资源
最近更新 更多