如何加快cross_val_score?

时间:2019-09-02 16:03:05

标签: python python-3.x scikit-learn cross-validation

我只是想使用sklearn.model_selection.cross_val_score在MNIST数据集上评估SGDClassifier。 我花了大约3分钟的6分钟。 我如何使用完整的系统电源来加快此过程(我的意思是使用从CPU到图形卡等的所有东西) 顺便说一下,我正在监视CPU使用率,它只消耗了54%的电量。

提前谢谢!

from sklearn.linear_model import SGDClassifier
from sklearn.model_selection import cross_val_score

mnist = fetch_openml('mnist_784')
X, y = mnist['data'], mnist['target']
X_train, X_test, y_train, y_test = X[:60000], X[60000:], y[:60000], y[60000:]
y_train_5 = (y_train == 5)
y_test_5 = (y_test == 5)

sgd_clf = SGDClassifier(random_state=42)
sgd_clf.fit(X_train, y_train)

cross_val_score(sgd_clf, X_train, y_train, cv=3, scoring='accuracy')

1 个答案:

答案 0 :(得分:0)

来自docs

  

n_jobs: int或无,可选(默认=无)

     

用于执行计算的CPU数量。除非在joblib.parallel_backend上下文中,否则None表示1。 -1表示使用所有处理器。

即您可以使用所有可用的内核

cross_val_score(sgd_clf, X_train, y_train, cv=3, scoring='accuracy', n_jobs=-1)

或指定其他值n_jobs=k,如果使用所有内核会使您的计算机运行缓慢或无响应。

这将使用更多的CPU内核;据我所知,scikit-learn中没有将计算量卸载到GPU的功能。