[英]How can I use this function in multiprocessing?
I want to apply 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()
How can I apply function(input_field,[num1,num2,num3])
to multiprocessing?如何将
function(input_field,[num1,num2,num3])
应用于多处理?
You have 2 options based on the structure of your test_list
:根据
test_list
的结构,您有 2 个选项:
modify your function to support a single argument and unpack it inside the function and keep using map
:修改您的函数以支持单个参数并将其解压缩到函数中并继续使用
map
:
def function(arg): input_field, l = arg
use starmap
and fix your function definition, because the structure of test_list
is what starmap
is expecting to get:使用
starmap
并修复您的函数定义,因为test_list
的结构是starmap
期望获得的:
def function(input_field, l): ... results = pool.starmap(function, test_list)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.