Wir werden die Lösung vorstellen, wenn der folgende Fehler auftritt, wenn eine prozessparallele Berechnung mit "joblib" und "multiprocessing" durchgeführt wird. Die Ursache ist, dass das für die Kommunikation zwischen Prozessen verwendete Pickle nicht verwendet werden kann.
error1}
TypeError: cannot pickle 'SwigPyObject' object
error2}
PicklingError: Could not pickle the task to send it to the workers.
Verwenden Sie "Pathos". Es kann mit pip install pathos
installiert werden.
code}
# some_func, some_Bitte erstellen Sie eine entsprechende Liste
from pathos.multiprocessing import ProcessingPool
pool = ProcessingPool(nodes=4)
result_list = pool.map(lambda x: some_func(x), some_list)
Wenn es sich zum Zeitpunkt des Speicherns um Gurke handelt, kann es mit "Dill" gelöst werden.
Recommended Posts