Scikit-Learn中的模型持久性



我正在尝试保存和加载scikit-learn模型,但是当保存和加载发生在不同的python版本上时,我遇到了问题。这是我尝试过的:

  1. 使用 pickle 在 python3 中保存模型并在 python2 中反序列化。这适用于某些模型,如LR,SVM,但不适用于KNN。

    >>> pickle.load(open("inPy3.pkl", 'rb')) #KNN model
    ValueError: non-string names in Numpy dtype unpickling
    
  2. 另外,我尝试使用 jsonpickle 在 json 中序列化和反序列化,但收到以下错误。

    data = jsonpickle.encode(lr) #lr = logisticRegression Model
    jsonpickle.decode(data)
    AttributeError: 'dict' object has no attribute '__name__'
    

另外,我想知道是否有一些实用程序可用于将scikit-learn模型对象序列化和反序列化为人类可读格式(json,xml,protobuf等)。

您可以提取和存储它们的系数,而不是腌制整个模型。然后加载系数并用它们初始化模型。

与 sklearn 升级问题相关。类似的方法对 python 版本也有效。

相关内容

  • 没有找到相关文章

最新更新