2013-05-01 13 views
9

Windows 8 64bit'te ile python 2.7 çalışıyorum ve 4 çekirdekli bir sistem var. Bir scikit-learn modelini takarken, CPU kullanımı% 50, python'dan% 25 ve Chrome'dan% 25'dir.Scikit-öğrenen modellerin tüm çekirdeklerini kullanmak için Python'u etkinleştirin

Neden chromepython kadar CPU kaynakları kullanıyorsunuz?

scikit-learn model uydurma işlevlerinin çok iş parçacıklı sürümü var mı, bu nedenle çok çekirdekten faydalanmak bir değişken ayarlamak kadar kolay olabilir mi? Mesela ...

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

cevap

9

Çok az sklearn modelleri onları-canlarından tarafından paralel olarak çalışabilir. olmayan bir __main__ etkileşimli piton oturumda n_jobs=-1 veya n_jobs=4 ile GridSearchCV (örneğin, bir komut dosyası) (altta yatan tek tek fit çağrıları, örneğin 1 sn daha geçen sürece) [1] windows altında çoklu işlem yapmak gerekir.

Krom parçaları muhtemelen ilgisiz: herhangi bir CPU kullanmasını istemiyorsanız yalnızca krom kapatın. Muhtemelen arka planda bazı javascript veya buggy flash uygulamasını çalıştıran bir sekme var.

[1]

+0

http://docs.python.org/2/library/multiprocessing.html#windows Aslında 'her' fit' çağrı bireysel 'python' örneklerini başlangıç ​​n_jobs'. Bu, muazzam bir ek yük ile sonuçlanır, bu yüzden 'uygun' zamanın 1 saniyesinin üzerine çıkarak kullanılabilir. –

+0

Bir Havuzda 'n_jobs' Python işlemini başlatmalı ve bu işlemlere uygun çağrıları göndermelidir. Gerçekten de bu daha belirgin bir şekilde daha fazladır ve sadece uygun çağrıların 1 saniyeden fazla sürmesi durumunda kullanışlıdır. – ogrisel

+0

Windows'da görev yöneticisinde gördüğüm şey kesinlikle bir "python" işlemi havuzu değil. –

İlgili konular