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?
從文檔中,它看起來像'target'應該是一個'function'。但是'network_matrix_main_function(input_network)'''函數'或某種類型的值?它看起來像一個函數調用,它立即評估一個值,而不是「函數」。 – Paul
這是一個函數調用,如果你恰到好處的函數名稱,你如何給函數的參數? –