2017-02-14 102 views
11

我已經通過documentation讀取(在Python中JOBLIB使用時),但我不明白的是什麼意思: The delayed function is a simple trick to be able to create a tuple (function, args, kwargs) with a function-call syntax.什麼是延遲()函數做

我用它來遍歷列表我要上(allImages)操作如下:

def joblib_loop(): 
    Parallel(n_jobs=8)(delayed(getHog)(i) for i in allImages) 

這將返回我的HOG特徵,像我想要(與使用我的所有8個內核的速度增益),但我只是不確定它在做什麼。

我的Python知識充其量是最好的,它很可能是我缺少一些基本的東西。任何指向正確方向的指針都將非常感謝

回答

-1

從引用https://wiki.python.org/moin/ParallelProcessing Parallel對象創建一個多處理池,它在多個進程中分叉Python解釋器以執行列表中的每個項目。延遲函數是一個簡單的技巧,可以用函數調用語法創建一個元組(函數,參數,kwargs)。

我想提出的另一件事是不是明確定義的核心NUM我們可以概括如下:

import multiprocessing 
num_core=multiprocessing.cpu_count() 
+0

我沒有看到這個答案如何解決如何延遲作品的OP的問題。你已經重述了關於逐字功能延遲的陳述。 – OfLettersAndNumbers