2013-05-01 52 views
9

我在Windows 8上運行64位與python 2.7ipython有4個內核的系統。當擬合scikit-learn模型,CPU使用率是50%,從25 python%和Chrome 25%。啓用Python來利用用於裝配所有內核scikit學習模式

爲什麼使用chrome儘可能多的CPU資源python

有沒有多線程的scikit-learn模型擬合函數的版本,所以利用多核可以像設置變量一樣容易?像...

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

回答

9

很少sklearn模型可以通過它們,自我並行運行。 GridSearchCVn_jobs=-1n_jobs=4在一個非__main__交互式python會話中(例如,在一個腳本中)[1]應該能夠在windows下進行多處理(只要底層個體fit調用持續時間超過1秒)。

鉻的東西可能是不相關的:只要關閉Chrome,如果你不希望它使用任何CPU。你可能有一個標籤在後臺執行一些JavaScript或錯誤的Flash應用程序。

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

+0

其實'n_jobs'每'fit'調用啓動個人'python'實例。它導致了巨大的開銷,所以它適用於「適合」時間超過1秒。 – 2016-02-21 19:04:00

+0

應該開始'n_jobs'池中的Python進程和調度配合調用這些進程。事實上,這仍然是更大的開銷,並且只有在單個合適的調用需要超過1秒時纔有用。 – ogrisel 2016-02-24 12:10:50

+0

我在Windows上的任務管理器中看到的肯定不是'python'進程池。 – 2016-02-24 14:11:03