我创建了一个sklearn模型,我希望将其嵌入到我的nodejs web应用程序中。我用python3创建了模型,并将其打包到带有joblib的pkl文件中。
from sklearn.externals import joblib
joblib.dump(clf, 'RandomForest_jul30.pkl', protocol=2)
我正在使用npm包" child_process"运行一个python脚本,我将使用joblib.loads将数据加载到pkl文件中并解压缩它,尽管它会抛出错误:
ValueError: unsupported pickle protocol: 3
我试图更改我正在使用的python版本,尽管我仍然遇到类似的错误或与版本相关的错误。
编辑:当使用python 3运行时,错误是:
/usr/lib/python3/dist-packages/sklearn/base.py:315: UserWarning: Trying to unpickle estimator DecisionTreeClassifier from version 0.18.1 when using version 0.18. This might lead to breaking code or invalid results. Use at your own risk.
UserWarning) . . . KeyError: 2
答案 0 :(得分:0)
尝试使用cPickle
import cPickle as pkl
pkl.dump(clf,open('Clf.clf','wb+'))