gpt4 book ai didi

Python:joblib 不适用于自定义函数

转载 作者:行者123 更新时间:2023-12-05 04:14:27 25 4
gpt4 key购买 nike

我正在尝试在 python 中使用并行计算包 joblib。我可以执行下面的例子并得到结果

Parallel(n_jobs=8)(delayed(sqrt)(i) for i in range(10))

但是,下面的代码无法运行。

from joblib import Parallel, delayed
def f(x):
return 1
def y(x):
result=Parallel(n_jobs=8)(delayed(x)(i) for i in range(10))
return result
if __name__ == '__main__':
print y(f)

当我运行上面的代码时,它会一直运行下去而不会产生任何结果或消息。

谁能找出这种奇怪行为的原因(我使用的是 Windows)?谢谢

最佳答案

问题出在这行代码中:

result=Parallel(n_jobs=8)(delayed(x)(i) for i in range(10))

它应该是:

result=Parallel(n_jobs=8)(delayed(f)(i) for i in range(10))

您必须将函数名称传递给 delayed,就像您使用 sqrt 对第一个示例所做的那样。

关于Python:joblib 不适用于自定义函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34840528/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com