How to serialize sympy lambdified function?

后端 未结 2 604
春和景丽
春和景丽 2020-12-17 23:41

The title says it all. Is there any way to serialize a function generated by sympy.lambdify?:

import sympy as sym
import pickle
import dill
a, b = sym.symbol         


        
2条回答
  •  一个人的身影
    2020-12-18 00:16

    Indeed - pickle, cPickle, and even dill fail on this example with default settings.

    But cloudpickle does not fail!

    pip install cloudpickle
    

    or

    https://github.com/cloudpipe/cloudpickle

    import sympy as sym
    from cloudpickle import dumps, loads
    a, b = sym.symbols("a, b")
    expr = sym.sin(a) + sym.cos(b)
    lambdified_expr = sym.lambdify((a, b), expr, modules="numpy")
    var=dumps(lambdified_expr)
    a1=lambdified_expr(10,10)
    del lambdified_expr
    lambdified_expr=loads(var)
    a2=lambdified_expr(10,10)
    a1==a2  # True
    

提交回复
热议问题