scikit-lean GridSearchCV n_jobs != 1 freezing

后端 未结 1 1260
广开言路
广开言路 2020-12-21 22:21

I\'m running grid search on random forests and trying to use n_jobs different than one but the kernel freezes, there is no CPU usage. With n_jobs=1 it works fine. I can\'t e

相关标签:
1条回答
  • 2020-12-21 22:55

    The indent after if __name__ == '__main__': is not correct. If it's not the case and it's a copy paste mistake then you can try something like :

    if __name__ =='main':
        # your code indented !
    

    So the first line of your script is if __name__ == '__main__': and then the rest code follows with the appropriate indent.

    New Code

    from sklearn.ensemble import RandomForestClassifier
    from sklearn.pipeline import Pipeline    
    
    if __name__ == '__main__':
    
        rf_tfdidf = Pipeline([('vect',tfidf),('clf', RandomForestClassifier(n_estimators=50,class_weight='balanced_subsample'))])
    
        param_grid = [{'vect__ngram_range':[(1,1)],'vect__stop_words': [stop],'vect__tokenizer':[tokenizer]}]
    
        gs_rf_tfidf = GridSearchCV(rf_tfdidf, param_grid, scoring='accuracy', cv=5,verbose=10, n_jobs=-1)
    
        gs_rf_tfidf.fit(X_train_part, y_train_part)
    

    This works fine for me (windows 8.1)

    EDIT

    The following works fine using PyCharm. I have not used spyder but it should also work for spyder:

    Code

    Class Test(object):
        def __init__(self):
            ###code here
            ###code here    
    
    if __name__ == '__main__':
        Test()
    
    0 讨论(0)
提交回复
热议问题