2017-04-04 72 views
0

我已經編寫了一個python腳本,它使用numpy從不同數據源創建兩個數組,並將它們相互比較。構建陣列是一個相當緩慢的過程,所以我想找到一種方法來同時構建它們來加速腳本。我試圖做到這一點使用這樣的多道處理模塊:使用多處理在python中同時創建兩個數組

if __name__=='__main__': 
     p1 = Process(target=network_matrix_main_function(input_network)) 
     p1.start() 
     p2 = Process(target=tree_matrix_main_function(input_tree)) 
     p2.start() 
     print p1 
     print p2 

但我發現了以下錯誤消息:

Process Process-1: 
Traceback (most recent call last): 
    File "/Users/bj5/homebrew/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/multiprocessing/process.py", line 258, in _bootstrap 
    self.run() 
    File "/Users/bj5/homebrew/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/multiprocessing/process.py", line 113, in run 
    if self._target: 
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all() 
<Process(Process-1, stopped[1])> 
<Process(Process-2, started)> 
Process Process-2: 
Traceback (most recent call last): 
    File "/Users/bj5/homebrew/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/multiprocessing/process.py", line 258, in _bootstrap 
    self.run() 
    File "/Users/bj5/homebrew/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/multiprocessing/process.py", line 113, in run 
    if self._target: 
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all() 

像蟒蛇正在努力處理這個事實聽起來對我說,來自兩個並行進程的輸出是一個數組而不是單個值。我試過用google搜索a.any()和a.all()(它建議在錯誤消息的最後一行中使用),以便與多處理和數組一起使用,但一直未能找到任何告訴我如何使用它們。

任何人都可以向我解釋爲什麼我的腳本不工作,我需要做什麼來並行運行兩個函數:network_matrix_main_function和tree_matrix_main_function?

+0

從文檔中,它看起來像'target'應該是一個'function'。但是'network_matrix_main_function(input_network)'''函數'或某種類型的值?它看起來像一個函數調用,它立即評估一個值,而不是「函數」。 – Paul

+0

這是一個函數調用,如果你恰到好處的函數名稱,你如何給函數的參數? –

回答

0

這很容易修復。你看,多處理,你必須單獨的功能和參數:

p1 = Process(target=[some function], args=[(some arguments,other args)]) 

而且,你不應該印刷工藝,但它們的功能定義,他們應該打印出來的東西,

最後,您應該將這些進程與.join()函數一起加入。

相關問題