joblib для параллельного вычисления цикла for, выдается ошибка: «Подана задача для несериализации» - PullRequest
0 голосов
/ 11 февраля 2019

Я использую joblib для параллельного цикла for для своей собственной функции.

from joblib import Parallel, delayed
from my_function import my_case_study

result = Parallel(n_jobs=4)(delayed(my_case_study)(i) for i in range(100))

Так что my_case_study - единственная функция в файле my_function.py, и она принимает i в качестве гиперпараметра.my_case_study вызывает кучу различных алгоритмов подбора моделей, содержащихся в других файлах python, которые импортируются в начало my_function.my_function.py в основном выглядит как

from anotherfile import fun1
from anotherfile import fun2
def my_case_study(i):
     mse1 = fun1(i)
     mse2 = fun2(i)
     return (mse1,mse2)

Но затем я получаю сообщение об ошибке: Газ задачи не удалось сериализовать.Пожалуйста, убедитесь, что все аргументы функции являются отмычками.

Как решить эту проблему?Спасибо !!

1 Ответ

0 голосов
/ 11 февраля 2019

Я нашел решение по следующей ссылке полезным в моем случае:

https://github.com/joblib/joblib/issues/810

Не знаю, есть ли какое-нибудь другое лучшее решение.Так как комментарии в конце упоминали, что могут быть некоторые проблемы с этим (не полностью понял).

...