Я использую демо-код из транспортного средства-прогноза . Когда дело доходит до моделей в каталоге models
, я могу загрузить эту модель model_2000_car_100_iter_v.pkl
в Python2, но моя среда интеграции - Python3. Поэтому, когда я запускаю коды для загрузки модели в Python3, используя joblib.load()
, возникают ошибки:
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 позволяет пользователю сохранять модель в Python3 и загружать ее в Python2, используя параметр protocol
, но как я могу сделать это в обратном порядке?
Есть ли способ загрузить модель в другую версию Python, используя joblib?