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