Вопрос многопроцессорности Python об итерации функции несколькими аргументами - PullRequest
1 голос
/ 03 октября 2019

Мне нужна помощь в этом, я поиграл с несколькими вариантами на стеке потока и интернета. Но мне нужна помощь в этом, потому что я в замешательстве. Я на Python 2.7.

Это мой менеджер для мультиобработки. Мне просто нужно итерировать function1 на основе n_iterations и собирать результат для каждой итерации. Я импортировал две библиотеки,

from functools import partial
import multiprocessing

Function1 is;

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) Может кто-нибудь помочь мне разобраться, что я делаю неправильно? Спасибо.

Ответы [ 2 ]

0 голосов
/ 03 октября 2019

Я нашел ответ, проблема была связана с фактическим кодом, вызывающим функцию valueof1, которой не было. После исправления я настроил function1, чтобы он включал итеративное значение, def function1(v1,v2,v3,v4,v5,n):, чтобы исправить это.

0 голосов
/ 03 октября 2019

процесс sampling_process не нуждается в аргументах, вы можете определить Function1:

def function1(n, v1,v2,v3,v4,v5):
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...