我正在从vehicle-prediction运行一些演示代码。关于models
目录中的模型,我可以在Python2中加载该模型model_2000_car_100_iter_v.pkl
,但是我的集成环境是Python3。因此,当我运行代码以使用joblib.load()
在Python3中加载模型时,会引发错误:
UnicodeDecodeError: 'ascii' codec can't decode byte 0x80 in position 1024: ordinal not in range(128)
和
raise new_exc
ValueError: You may be trying to read with python 3 a joblib pickle generated with python 2. This is not feature supported by joblib.
我试图弄清楚这是指泡菜,因为joblib是指泡菜。因此pickle doc说encoding = 'latin1'
可以避免此问题,但是没有成功。而且我还尝试了“ iso-8859-1”编码,该编码也失败了。
import pickle
picklefile=open('model_2000_car_100_iter_v.pkl','rb')
data=pickle.load(picklefile,encoding='iso-8859-1') # or 'latin1'
我可以看到pickle允许用户使用protocol
参数在Python3中保存模型并在Python2中加载模型,但是我该如何反向执行呢?
有没有办法使用joblib在不同的python版本中加载模型?