Использование Joblib и получение «не может распаковать не повторяемый объект функции» - PullRequest
1 голос
/ 10 января 2020

Я новичок в многопроцессорности. Следующий код правильно иллюстрирует то, что я пытаюсь сделать:

import pandas as pd
import multiprocessing
from joblib import Parallel, delayed

one = [True, False]
one_bla = pd.Series(one)
one_names = pd.Series(['Mr. Pea', 'Mrs. Pea'])

one_names = list(zip(one_names, one_names.index))

two = {}

def q():
    for k, m in one_bla.items():
        if one_bla.iloc[i] == True:
            two[i] = v

num_cores = multiprocessing.cpu_count()
results = Parallel(n_jobs=num_cores)(delayed(q) for i, v in one_names)

Это бросает мне TypeError: cannot unpack non-iterable function object. Может кто-нибудь посмотреть, где я делаю ошибку?

1 Ответ

1 голос
/ 05 февраля 2020

проблема в пропущенном парантезе после отложенной (q) команды. Попробуйте это;

results = Parallel(n_jobs=num_cores)(delayed(q)() for i, v in one_names)
...