在jupyter中报告的n_jobs=1与CPU使用率之间的差异

我在KNeighborsClassifier上运行GridSearchCV,并将n_jobs超参数设置为-1,因此所有CPU都用于网格搜索。所以直觉上我认为应该有8种不同的超参数组合并行运行。

在运行过程中,使用Ubuntu上的htop,我可以看到所有8个CPU都被Python使用了99%,看起来一切正常。但jupyter在运行过程中输出

[Parallel(n_jobs=1)]: Using backend SequentialBackend with 1 concurrent workers.

从代码输出来看,似乎所有操作都是串行执行的,而不是并行执行的。

那么这里到底发生了什么?

编辑:代码如下

from sklearn.model_selection import GridSearchCVparam_grid_knn=[    {        'weights' : ['uniform','distance'],        'n_jobs' : [-1],        'n_neighbors' : [3,5,7],        'p' :[1,2]    }]knn = KNeighborsClassifier()grid_search = GridSearchCV(knn,param_grid_knn,cv=5,scoring='accuracy',return_train_score=True,verbose=2,refit=True)grid_search.fit(train_data,train_labels)

回答:

我找到了答案,n_jobs=1指的是GridSearchCV使用的n_jobs,默认值为1,因为我在函数调用中没有指定它。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注