SymPy의 autowrap 모듈에서 ufuncify
도구를 사용하여 이진화 된 함수를 직렬화하거나 저장하는 방법이 있습니까?sympy ufuncify-ied 함수를 직렬화하는 방법이 있습니까?
dill
: How to serialize sympy lambdified function?을 사용하는 해결책이 있지만이 방법은 lambdified 기능에서만 작동합니다.
여기 설명하기 위해 최소한의 작업 예제 :
>>> import pickle
>>> import dill
>>> import numpy
>>> from sympy import *
>>> from sympy.utilities.autowrap import ufuncify
>>> x, y, z = symbols('x y z')
>>> fx = ufuncify([x], sin(x))
>>> dill.settings['recurse'] = True
>>> dill.detect.errors(fx)
pickle.PicklingError("Can't pickle <ufunc 'wrapper_module_0'>: it's not found as __main__.wrapper_module_0")
동기 부여 : I이 몇 50 만 문자 길이 내가 속도 싶습니다 SymPy 식; ufuncify
은 놀랍게도 (lambidfy
이상으로 3 배 이상 향상되었지만) 각 표현마다 ufuncify
까지 3 시간이 걸립니다. 나는 ufuncify
- 수식을 활용할 수 있기를 바란다. (다시 처리하기 위해 하루를 기다리지 않고). 업데이트 : 설명을 위해 컴퓨터가 잠자기 모드로 전환하여 파이썬 커널을 죽였으므로 2 진수 기능을 복구하는 데 ~ 10 시간 정도 기다려야합니다.