如何使用joblib。Parallel() 并行化一个循环,其中包含一些"continue"?



假设我有一个循环,只有在满足某些条件时才"输出":

output = []
for item in some_list:
if condition(item):
res = do_something(item)
output.append(res)

对于内存限制,我无法用None-s 填充output列表,所以我不能写:

joblib.Parallel(n_jobs=n)(joblib.delayed(do_something)(item) for item in some_list)

有没有一种快速合理的方法可以使Parallel生成的输出列表不包含冗余None-s?

编辑

我忘了澄清检查condition(item)和实际do_something(item)总体上花费的时间太长,所以我试图并行化两者。

:">有没有一种快速合理的方法使Parallel生成的输出列表不包含多余的None-s?

是的。

根据需要定义for item生成器部分:

joblib.Parallel( n_jobs = n )( joblib.delayed( do_something )( item )
for item in some_list
if condition( item )
)

相关内容

  • 没有找到相关文章