我写了一个适合一些数据的类。由于需要拟合大量数据时拟合需要很长时间,因此我想保存此类的拟合对象,以便以后使用拟合数据时不必重复拟合。使用 pickle,我在对象上调用 save 方法时收到以下错误:
AttributeError: Can't pickle local object 'ConstantModel.__init__.<locals>.constant'
我只有在对拟合数据进行腌制时才会遇到这个问题,如果我在拟合之前保存对象,腌制就可以工作。有没有办法腌制拟合数据或者有一个很好的解决方法?
class pattern:
def fitting(self):
mod_total = lmfit.models.ConstantModel()
pars_total = mod_total.guess(self.y, x=self.x)
self.fit = mod_total.fit(self.y, pars_total, x=self.x)
def save(self, path):
with open(path, 'wb') as filehandler:
pickle.dump(self, filehandler)