Загрузка пакета рассола в экземпляре AWS EC2 - PullRequest
0 голосов
/ 21 января 2019

Я сохранил одну из своих моделей локально, используя pickle (windows Python 3.6), мне нужно было, чтобы эта модель работала на экземпляре EC2 Linux (используя Python 2.7) для прогнозирования. Я перенес сохраненную модель со своего ноутбука на экземпляр EC2 с помощью Filezilla, теперь, когда я пытаюсь загрузить модель, используя следующий код:

filename = 'Customer_segmentation_model_xgb_final.sav'
loaded_model = pickle.load(open(filename,'rb'))

выдает следующую ошибку:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib64/python2.7/pickle.py", line 1384, in load
    return Unpickler(file).load()
  File "/usr/lib64/python2.7/pickle.py", line 864, in load
    dispatch[key](self)
  File "/usr/lib64/python2.7/pickle.py", line 892, in load_proto
    raise ValueError, "unsupported pickle protocol: %d" % proto
ValueError: unsupported pickle protocol: 3

Кто-то, пожалуйста, подскажите, что я делаю неправильно и что нужно сделать.

1 Ответ

0 голосов
/ 21 января 2019

Похоже, проблема совместимости, я бы предложил установить ту же версию Python на вашем сервере (Python 3.6), так как модуль pickle является частью стандартной библиотеки Python:

sudo apt-get install python3.6

Вы можететакже принудительно установить более низкий протокол при первоначальном сбросе ( EDIT : как предложено в комментариях):

pickle.dump(model, file, protocol=2)

Надеюсь, это поможет!

...