【发布时间】:2021-09-28 10:06:21
【问题描述】:
我有一个对象类,其初始化函数定义如下
class Foo:
def __init__(self, arg1, arg2, arg3=True, ...):
...
我想并行化一个将我的 Foo 类的实例作为输入的函数。但它会抛出以下错误
foo = F(arg1, arg2, arg3)
Parallel(n_jobs=-1)(delayed(fun)(x, y, foo) for x, y in [args])
__init__() missing 1 required positional argument ...
据我所知,当 foo 对象被 Joblib 腌制时,它会创建我的 foo 类实例的副本,但由于某种原因,该副本没有使用所有正确的参数正确初始化。
【问题讨论】:
-
每个参数总是将类实例作为参数
-
无论如何,您确实必须提供minimal reproducible example,包括带有堆栈跟踪的完整错误消息
-
@juanpa.arrivillaga 感谢您的评论,研究最小的可重现示例为我提供了解决方案。我应该在发布问题之前这样做。
-
这就是调试问题需要它的原因:)
标签: python multiprocessing pickle joblib