0

我写了一个适合一些数据的类。由于需要拟合大量数据时拟合需要很长时间,因此我想保存此类的拟合对象,以便以后使用拟合数据时不必重复拟合。使用 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)
4

1 回答 1

0

我找到了解决这个问题的方法:使用dill代替pickle工作(如我所愿)。

于 2019-11-22T08:21:51.203 回答