joblib对for循环进行并行计算,得到错误:“任务已提交,要取消序列化”

时间:2019-02-11 05:14:43

标签: python python-3.x parallel-processing joblib

我正在使用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 :(得分:0)

我发现以下链接中的解决方案对我的情况很有帮助:

  

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

不知道是否还有其他更好的解决方案。由于最后的评论提到可能存在一些问题(无法完全理解)。