Calcul parallèle (pathos) lorsqu'il s'agit d'objets qui ne peuvent pas être décapés

Aperçu

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.

Solution

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)

prime

S'il s'agit d'un cornichon au moment de la sauvegarde, il peut être résolu en utilisant «aneth».

référence

Recommended Posts

Calcul parallèle (pathos) lorsqu'il s'agit d'objets qui ne peuvent pas être décapés
Matières qui ne peuvent pas être importées avec sklearn
Enquête lorsque l'importation ne peut pas être effectuée avec python
Importer des bibliothèques qui ne peuvent pas être installées par pip avec PyCharm
[android] Lorsque AVD ne peut pas être utilisé avec l'autorisation refusée
Traiter l'erreur selon laquelle une erreur de récupération HTTP se produit dans gpg et la clé ne peut pas être obtenue
Solution lorsque l'image ne peut pas être affichée avec tkinter [python]
Quand Times New Roman ne peut pas être utilisé avec matplotlib (Ubuntu)
Exemples et solutions qui ne peuvent pas être optimisés avec scipy.optimize.least_squares
Calcul parallèle avec le notebook iPython
Lorsque l'USB n'a pas pu être formaté
Lorsque pydub ne peut pas être installé
Voici un résumé des choses qui pourraient être utiles pour traiter des nombres complexes en Python
Mesures pour ne pas être en mesure d'installer ou d'importer ssl avec pycharm
Correction d'un bug où node.surface ne pouvait pas être obtenu avec python3 + mecab