【发布时间】: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