如何 运行 来自 joblib 的具有多参数且没有交叉函数的并行函数
How to run Parallel function from joblib with multi arguments without cross function
我正在尝试使用 joblib 中的并行函数使用多个参数。我不确定,但它正在使用这些参数进行跨功能机制
假设我有两个列表 [1,2] 和 [5,7],当我乘以列表时我想要 5,14 作为我的输出。
import multiprocessing
from joblib import Parallel, delayed
from tqdm import tqdm
import numpy as np
def my_function(myList, parameters):
print(myList*parameters)
num_cores = multiprocessing.cpu_count()
inputs = [1,2]
parameters = [5,7]
if __name__ == "__main__":
processed_list = Parallel(n_jobs=2)(delayed(my_function)(myList= i,parameters = j) for i in inputs for j in parameters)
上面的代码似乎输出了 5,7,10,14,但我想要 5,14 即 1 x 5,2 x 7
import multiprocessing
from joblib import Parallel, delayed
from tqdm import tqdm
import numpy as np
def my_function(myList, parameters):
print(myList*parameters)
num_cores = multiprocessing.cpu_count()
inputs = ((2,3),(3,5))
if __name__ == "__main__":
processed_list = Parallel(n_jobs=num_cores)(delayed(my_function)( i, j) for i,j in inputs )
我发现我需要使用元组
我正在尝试使用 joblib 中的并行函数使用多个参数。我不确定,但它正在使用这些参数进行跨功能机制
假设我有两个列表 [1,2] 和 [5,7],当我乘以列表时我想要 5,14 作为我的输出。
import multiprocessing
from joblib import Parallel, delayed
from tqdm import tqdm
import numpy as np
def my_function(myList, parameters):
print(myList*parameters)
num_cores = multiprocessing.cpu_count()
inputs = [1,2]
parameters = [5,7]
if __name__ == "__main__":
processed_list = Parallel(n_jobs=2)(delayed(my_function)(myList= i,parameters = j) for i in inputs for j in parameters)
上面的代码似乎输出了 5,7,10,14,但我想要 5,14 即 1 x 5,2 x 7
import multiprocessing
from joblib import Parallel, delayed
from tqdm import tqdm
import numpy as np
def my_function(myList, parameters):
print(myList*parameters)
num_cores = multiprocessing.cpu_count()
inputs = ((2,3),(3,5))
if __name__ == "__main__":
processed_list = Parallel(n_jobs=num_cores)(delayed(my_function)( i, j) for i,j in inputs )
我发现我需要使用元组