Der Titel sagt alles. Gibt es eine Möglichkeit, eine Funktion zur Serialisierung von sympy.lambdify erzeugt ?:Wie zu sympy lambified Funktion serialisieren?
import sympy as sym
import pickle
import dill
a, b = sym.symbols("a, b")
expr = sym.sin(a) + sym.cos(b)
lambdified_expr = sym.lambdify((a, b), expr, modules="numpy")
pickle.dumps(lambdified_expr) # won't work
dill.dumps(lambdified_expr) # won't work either
... Der Grund, warum ich dies tun wollen ist, weil mein Code so viele lambdified Funktionen erzeugt, aber ich fand es jedes Mal zu lange dauert .
Warum ist Recurse = True keine Standardoption? – denfromufa
Da 'Dill' eine breite Palette von Objekten serialisieren kann, bietet 'recurse = False' die größte Abdeckung. Wenn Sie 'recurse = True 'verwenden, funktioniert es für bestimmte Objekte sehr gut, bricht jedoch die Serialisierung für eine Reihe von Fällen. Wenn (oder wann) ich die Fälle auflöse, die es unterbricht, wird es zum Standard werden. Bis dahin ist es am besten, die Standardfunktionalität * nicht * zu entfernen, sondern neue Funktionen über eine Einstellung bereitzustellen. Siehe: https://github.com/uqfoundation/dill/issues/105 –
@MikeMcKerns Ich habe eine Einschränkung, für ziemlich große lambadified Funktionen bekomme ich 'RuntimeError: maximale Rekursion Tiefe überschritten beim Aufruf eines Python-Objekts'. –