2017-02-13 40 views
0

例如,假設我的代碼:Scikit學習與Dask分佈式使用嵌套並行?

vectorizer = CountVectorizer(input=u'filename', decode_error=u'replace') 
classifier = OneVsRestClassifier(LinearSVC()) 
pipeline = Pipeline([ 
('vect', vectorizer), 
('clf', classifier)]) 

with parallel_backend('distributed', scheduler_host=host_port): 
    scores = cross_val_score(pipeline, X, y, cv=10) 

如果我執行此代碼我可以在DASK網頁視圖看見(通過散景),該10個任務創建(1對於每個倍)。但是,如果我執行:

(我知道X和Y應該分成訓練和測試,但這只是爲了測試目的)。

with parallel_backend('distributed', scheduler_host=host_port): 
    pipeline.fit(X,y) 

我可以看到每創建一個y類1個任務(在我的情況下爲20)。有沒有辦法讓cross_val_score並行運行並且底層的OneVsRestClassifier是並行運行的?或者是

with parallel_backend('distributed', scheduler_host=host_port): 
    scores = cross_val_score(pipeline, X, y, cv=10) 

原代碼並行運行OneVsRestClassifier與並行cross_val_score一起,我只是沒有看到呢?我需要用dask-distributed手動實現嗎?

回答