簡體   English   中英

Scikit-學習多線程

[英]Scikit-learn multithreading

你知道scikit-learn的模型是自動使用多線程還是只是順序指令?

謝謝

不會。默認情況下,所有scikit-learn估算器都只能在單個線程上工作。

但話又說回來,這一切都取決於算法和問題。 如果算法是想要順序數據的算法,我們什么也做不了。 如果數據集是多類或多標簽並且算法在一對一的基礎上工作,那么是的它可以使用多線程。

在要使用的實用程序或算法中查找參數n_jobs ,並將其設置為-1以使用多線程。

例如。

  • LogisticRegression如果在二進制問題中工作只會訓練單個模型,這將需要順序數據,所以這里使用n_jobs沒有任何效果。 但它像OvR一樣處理多類問題,所以它必須使用相同的數據訓練那些許多估算器。 在這種情況下,您可以使用n_jobs=-1

  • DecisionTreeClassifier本質上是多類啟用的,不需要訓練多個模型。 所以我們那里沒有那個參數。

  • RandomForestClassifier這樣的集合方法將訓練多個估算器(無論問題類型如何),這些估計器單獨處理數據的某些部分,因此我們再次使用n_jobs

  • 交叉驗證實用程序(如cross_val_scoreGridSearchCV)將再次處理數據的某些部分或某些單獨的參數,這些參數獨立於其他折疊,因此我們也可以使用多線程功能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM