--Parler du traitement parallèle de python, module multiprocessus --Utilisez la carte lorsque vous voulez le résultat dans une liste «Mais il semble que la carte ne puisse pas passer plusieurs arguments. ――Pour les expériences numériques telles que l'apprentissage automatique, j'expérimente souvent différents arguments, donc l'un est un peu. ..
#!/usr/bin/env python3
from itertools import product
from multiprocessing import Pool
#Fonctions que vous souhaitez traiter en parallèle
def multi_test(arg1, arg2, arg3):
return(arg1+arg2+arg3)
#Décidez du nombre de parallèles et préparez le pool
pool = Pool(3)
#Préparer des variantes d'argument avec une liste de tapples
multi_args = []
for iter1, iter2, iter3 in product(range(1,4), range(1,4), range(1,4)):
multi_args.append((iter1,iter2,iter3))
print(multi_args)
[(1, 1, 1), (1, 1, 2), (1, 1, 3), (1, 2, 1), (1, 2, 2), (1, 2, 3), (1, 3, 1), (1, 3, 2), (1, 3, 3), (2, 1, 1), (2, 1, 2), (2, 1, 3), (2, 2, 1), (2, 2, 2), (2, 2, 3), (2, 3, 1), (2, 3, 2), (2, 3, 3), (3, 1, 1), (3, 1, 2), (3, 1, 3), (3, 2, 1), (3, 2, 2), (3, 2, 3), (3, 3, 1), (3, 3, 2), (3, 3, 3)]
#Exécution du traitement parallèle
results = pool.starmap(multi_test, multi_args)
print(results)
[3, 4, 5, 4, 5, 6, 5, 6, 7, 4, 5, 6, 5, 6, 7, 6, 7, 8, 5, 6, 7, 6, 7, 8, 7, 8, 9]
«J'ai pu l'écrire simplement. Je viens de commencer à l'utiliser, alors dites-moi ce qui ne va pas.
Recommended Posts