web-dev-qa-db-ja.com

Python scikit learn n_jobs

これは実際の問題ではありませんが、理解したいと思います。

  • win74コア8GBシステムでAnacondaディストリビューションからsklearnを実行する
  • kMeansモデルを200.000サンプル* 200値テーブルに適合させます。
  • n-jobs = -1で実行中(スクリプトにif __name__ == '__main__':行を追加した後)スクリプトがそれぞれ10スレッドで4つのプロセスを開始しているのがわかります。各プロセスはCPUの約25%を使用します(合計:100%)。期待どおりに機能しているようです
  • n-jobs = 1で実行:20スレッドの単一プロセスにとどまり(驚くことではありません)、CPUを100%使用します。

私の質問:ライブラリがとにかくすべてのコアを使用する場合、n-jobs(およびjoblib)を使用する意味は何ですか?私は何かが足りないのですか?これはWindows固有の動作ですか?

8
Bruno Hanzen

n_jobsまたはjoblibのいずれかを使用する必要があり、両方を同時に使用しないでください。

0
Monish