Nous présenterons la solution lorsque l'erreur suivante est rencontrée lors de l'exécution d'un calcul parallèle de processus en utilisant joblib
et multiprocessing
. La cause est que le pickle utilisé pour la communication inter-processus ne peut pas être utilisé.
error1}
TypeError: cannot pickle 'SwigPyObject' object
error2}
PicklingError: Could not pickle the task to send it to the workers.
Utilisez pathos
. Il peut être installé avec pip install pathos
.
code}
# some_func, some_Veuillez créer une liste appropriée
from pathos.multiprocessing import ProcessingPool
pool = ProcessingPool(nodes=4)
result_list = pool.map(lambda x: some_func(x), some_list)
S'il s'agit d'un cornichon au moment de la sauvegarde, il peut être résolu en utilisant «aneth».
Recommended Posts