我需要一些帮助,我在stackoverflow和Internet上使用了多个选项。但由于感到困惑,我需要一些帮助。我使用的是Python 2.7。
这是我负责多重处理的经理。我只需要基于n_iterations迭代function1并收集每次迭代的结果。 我已经导入了两个库
from functools import partial
import multiprocessing
Function1是;
def function1(v1,v2,v3,v4,v5):
calculate_function = v1+v2+v3+v4+v5
return calculate_function
处理多重处理的功能是
def multi_process(n_iterations,a1,a2,a3,a4,a5):
sampling_process = partial(function1, v1=a1,v2=a2,v3=a3,v4=a4,v5=a5)
pool = multiprocessing.Pool()
results_set = pool.map(sampling_process, xrange(n_iterations))
pool.close()
pool.join()
return results_set
但是我不断收到错误消息,
File "model_selection_pooling_ray.py", line 246, in multi_process
results_set = pool.map(sampling_process, xrange(n_iterations))
File "/usr/lib/python2.7/multiprocessing/pool.py", line 251, in map
return self.map_async(func, iterable, chunksize).get()
File "/usr/lib/python2.7/multiprocessing/pool.py", line 567, in get
raise self._value
NameError: global name 'valuofv1' is not defined
(valuofv1是a1上的实际值) 有人可以帮我找出我做错了什么吗?谢谢。
答案 0 :(得分:0)
sample_process不需要任何参数,可以定义Function1:
def function1(n, v1,v2,v3,v4,v5):
答案 1 :(得分:0)
我找到了答案,这个问题与调用功能valueof1
的实际代码有关。修复此问题之后,我调整了function1以使其也包含迭代值,def function1(v1,v2,v3,v4,v5,n):
也对其进行了修复。