簡體   English   中英

如何在多處理中使用此功能?

[英]How can I use this function in multiprocessing?

我想在多處理中應用這個函數:

import multiprocessing
import numpy as np

a = np.random.randint(1,4, size=(10,10,10))

def function(input_field,[num1,num2,num3]):
    pass

if __name__ == '__main__':
    pool = multiprocessing.Pool(processes=4)
    test_list = [(a,[27.5, 27.5, 25]), (b,[27.5, 27.5, 25]), (c,[27.5, 27.5, 25]), (d,[27.5, 27.5, 25])]
    results = pool.map(function, test_list)
    pool.close()
    pool.join()    

如何將function(input_field,[num1,num2,num3])應用於多處理?

根據test_list的結構,您有 2 個選項:

  1. 修改您的函數以支持單個參數並將其解壓縮到函數中並繼續使用map

     def function(arg): input_field, l = arg
  2. 使用starmap並修復您的函數定義,因為test_list的結構是starmap期望獲得的:

     def function(input_field, l): ... results = pool.starmap(function, test_list)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM