如何使用保存在python2中的python3 pkl文件导入

时间:2019-05-14 00:53:50

标签: python-3.x python-2.7 pickle joblib hmmlearn

我正在从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 docencoding = '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版本中加载模型?

0 个答案:

没有答案