我正在尝试保存和加载scikit-learn模型,但是当保存和加载发生在不同的python版本上时,我遇到了一些问题。
1.使用pickle在python3中保存模型并在python 2中进行反序列化。这对LR、SVM等模型有效,但对KNN无效。
>>> pickle.load(open("inPy3.pkl", 'rb')) #KNN model
ValueError: non-string names in Numpy dtype unpickling
1.另外,我尝试使用jsonpickle在json中进行序列化和反序列化,但是得到了以下错误。
data = jsonpickle.encode(lr) #lr = logisticRegression Model
jsonpickle.decode(data)
AttributeError: 'dict' object has no attribute '__name__'
另外,我想知道是否有一些实用程序可以用来将scikit-learn模型对象序列化和反序列化为人类可读的格式(json,xml,protobuf等)。
1条答案
按热度按时间rta7y2nd1#
您可以提取并存储它们的系数,然后加载系数并使用它们初始化模型,而不是提取整个模型。
与sklearn升级question相关。类似的方法对python版本也有效。