如何在python中的joblib库中使用嵌套循环

Roh*_*ani 2 python multiprocessing joblib

实际代码如下:

def compute_score(row_list,column_list): 

    for i in range(len(row_list)):
            for j in range(len(column_list)):
                tf_score = self.compute_tf(column_list[j],row_list[i])
Run Code Online (Sandbox Code Playgroud)

我想要实现多处理,即在每次迭代时j我想要合并column_list.由于compute_tf功能很慢,我想多处理它.

我发现必须joblib在Python中使用它,但我无法使用嵌套循环进行解决.

Parallel(n_jobs=2)(delayed(self.compute_tf)<some_way_to_use_nested_loops>)
Run Code Online (Sandbox Code Playgroud)

这就是要实现的目标.如果提供任何解决方案或任何其他解决方案,这将是一个很大的帮助.

Tho*_*eau 8

无需实现生成器函数的另一种解决方案是使用生成器的嵌套列表推导:

Parallel(n_jobs=2)(delayed(self.compute_tf)(i, j) for j in column_list for i in row_list)
Run Code Online (Sandbox Code Playgroud)

订单将作为:

[(i, j) for j in range(10) for i in range(10)]
Run Code Online (Sandbox Code Playgroud)