1
我正在做一個關於機器學習分類任務的模型評估技術的論文,我使用了一些sklearn模型,因爲我可以寫大部分的通用代碼,因爲我有很多不同的數據集。 Sklearns模型輸出的一部分是predict_proba
,其中概率估計值。對於有大量數據點的大型數據集,要計算每個數據點的predict_proba
需要很長時間。我裝了htop
看到蟒蛇僅使用計算單核,所以我寫了以下功能:Python和Sklearn更快的計算時間
from joblib import Parallel, delayed
import multiprocessing
num_cores = multiprocessing.cpu_count()
def makeprob(r,first,p2,firstm):
reshaped_r = first[r].reshape(1,p2)
probo = clf.predict_proba(reshaped_r)
probo = probo.max()
print('Currently at %(perc)s percent' % {'perc': (r/firstm)*100})
return probo
# using multiple cores to run the function 'makeprob'
results = Parallel(n_jobs=num_cores)(delayed(makeprob)(r,first,p2,firstm) for r in range(firstm))
現在我htop
看到正在使用的所有內核,速度高達爲顯著,但不接近我想要的速度,如果有人知道加快速度的方法,或者指向正確的方向,以便在這種情況下獲得更快的計算增益,那將會很好。