2013-05-01 9 views
9

Windows 8 64bitでipythonpython 2.7を実行していて、4コアのシステムで実行しています。 scikit-learnモデルを取り付ける場合、CPU使用率は、pythonから25%、Chromeから25%の50%です。Pythonでscikit-learnモデルのフィッティングにすべてのコアを利用できるようにする

なぜchromepythonと同じCPUリソースを使用していますか?

scikit-learnモデルフィッティング関数のマルチスレッドバージョンがあるので、マルチコアを使用すると変数を設定するのと同じくらい簡単にできますか?以下のような...

grid_search = GridSearchCV(pipeline, parameters, n_jobs=-1)

答えて

9

非常に少数のsklearnモデルはそれら-自己によって並列に実行することができます。例えば、fitが最後に1秒以上呼び出す限り、ウィンドウ下でマルチプロセッシングを行うことができるはずです(例えば、スクリプト内の)__main__では、n_jobs=-1またはn_jobs=4である[1]。

クロムのものはおそらく無関係です。クロムをクロールするには、CPUを使用したくない場合です。バックグラウンドで、いくつかのjavascriptまたはバグのあるフラッシュアプ​​リケーションを実行しているタブがあります。

[1] http://docs.python.org/2/library/multiprocessing.html#windows

+0

を実際に ''すべてのfit'コールに個別 'python'インスタンスを起動n_jobs'。それは膨大なオーバーヘッドを招くので、1秒をはるかに上回る「フィット」で使用可能です。 –

+0

プールで 'n_jobs' Pythonプロセスを開始し、それらのプロセスにフィット呼び出しをディスパッチする必要があります。確かにこれは依然としてかなりオーバーヘッドであり、個々のフィットコールが1秒以上かかる場合にのみ役立ちます。 – ogrisel

+0

Windowsのタスクマネージャに表示されるのは、確かに 'python'プロセスのプールではありません。 –

関連する問題