2013-05-01 13 views
9

Sto utilizzando con ipython su Windows 8 a 64 bit con un sistema con 4 core. Quando si installa un modello scikit-learn, l'utilizzo della CPU è del 50%, 25% da python e 25% da Chrome.Abilita Python a utilizzare tutti i core per il montaggio di modelli scikit-learn

Perché chrome utilizza quante risorse della CPU come python?

Esiste la versione multithread delle funzioni di adattamento del modello scikit-learn in modo che l'utilizzo dei multicorpi sia facile come impostare una variabile? Come ...

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

risposta

9

pochissimi modelli sklearn possono funzionare in parallelo da loro-stessi. GridSearchCV con n_jobs=-1 o n_jobs=4 in una sessione python interattiva non __main__ (ad esempio in uno script) [1] dovrebbe essere in grado di eseguire il multiprocessing in Windows (a condizione che le chiamate di base fit durino più di 1 s, ad esempio).

Le cose di Chrome probabilmente non sono correlate: basta chiudere Chrome se non si desidera che utilizzi alcuna CPU. Probabilmente hai una scheda che esegue un'applicazione flash javascript o buggy in background.

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

+0

realtà 'n_jobs' Iniziamo singole istanze' python' su ogni chiamata 'fit'. Ne risulta un sovraccarico enorme, quindi è utilizzabile con un adattamento che dura ben più di 1 secondo. –

+0

Dovrebbe avviare il processo Python 'n_jobs' in un Pool e inviare chiamate adatte a quei processi. In effetti, questo è ancora un sovraccarico significativo e utile solo se le chiamate individuali richiedono più di 1 secondo. – ogrisel

+0

Quello che vedo nel task manager su Windows non è certamente un pool di processi 'python'. –

Problemi correlati