Python – クロス関数を使用せずに複数の引数を指定してjoblibから並列関数を実行する方法

okwaves2024-01-25  12

joblib の Parallel 関数を使用して複数の引数を使用しようとしています。よくわかりませんが、これらの引数を使用して機能間のメカニズムを実行しています。

2 つのリスト [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 を出力するように見えますが、1 x 5,2 x 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 = ((2,3),(3,5))


if __name__ == "__main__":
    processed_list = Parallel(n_jobs=num_cores)(delayed(my_function)( i, j) for i,j  in inputs )
    

タプルを使用する必要があることがわかりました

総合生活情報サイト - OKWAVES
総合生活情報サイト - OKWAVES
生活総合情報サイトokwaves(オールアバウト)。その道のプロ(専門家)が、日常生活をより豊かに快適にするノウハウから業界の最新動向、読み物コラムまで、多彩なコンテンツを発信。