Python 报告的n_作业=1与jupyter中CPU使用量之间的差异
我在KneighborsClassifier上运行GridSearchCV,并将n_jobs超参数设置为-1,因此我所有的CPU都用于gridsearch。所以直觉上我认为应该有8种不同的超参数组合并行运行 在ubuntu上使用htop运行期间,我可以看到我所有的8个CPU都被python使用了99%,所以这看起来是意料之中的。 但jupyter在运行期间输出Python 报告的n_作业=1与jupyter中CPU使用量之间的差异,python,machine-learning,scikit-learn,jupyter-notebook,gridsearchcv,Python,Machine Learning,Scikit Learn,Jupyter Notebook,Gridsearchcv,我在KneighborsClassifier上运行GridSearchCV,并将n_jobs超参数设置为-1,因此我所有的CPU都用于gridsearch。所以直觉上我认为应该有8种不同的超参数组合并行运行 在ubuntu上使用htop运行期间,我可以看到我所有的8个CPU都被python使用了99%,所以这看起来是意料之中的。 但jupyter在运行期间输出 [Parallel(n_jobs=1)]: Using backend SequentialBackend with 1 concurr
[Parallel(n_jobs=1)]: Using backend SequentialBackend with 1 concurrent workers.
从代码输出中我可以看出,似乎所有的东西都是串行执行的,而不是并行执行的
这到底是怎么回事
编辑:代码
from sklearn.model_selection import GridSearchCV
param_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,因为我没有在其函数调用中指定它。我找到了答案,n_jobs=1指的是GridSearchCV使用的n_jobs,默认情况下为1,因为我没有在其函数调用中指定它。我假设所有子线程都有一个线程,但是有很多子线程,所以所有8个线程都在大部分时间使用。尝试发布完整代码,可能此消息表示KNN的
n_作业
等于1,无法确定是否有完整的代码我假设所有的子线程都有一个,但是有很多子线程,所以所有的8个线程大部分时间都在使用。试着发布完整的代码,可能这个消息表明KNN的n_作业
等于1,无法确定是否有完整的代码