как загрузить модель маринада в систему linux - PullRequest
0 голосов
/ 10 января 2020

Я построил модель Xgb с пакетом xgboost в python. Я сохранил модель, используя pickle и joblib, которая отлично работает в моей системе windows 10. Но это выдает ошибку в AWS экземпляре, который я пытаюсь запустить. Кажется, ошибка связана с сериализацией.

>>> import joblib
>>> joblib.load(xgb_low_lr_fin.sav)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'xgb_low_lr_fin' is not defined
>>> joblib.load("xgb_low_lr_fin.sav")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/ubuntu/anaconda3/lib/python3.7/site-packages/joblib/numpy_pickle.py", line 598, in load
    obj = _unpickle(fobj, filename, mmap_mode)
  File "/home/ubuntu/anaconda3/lib/python3.7/site-packages/joblib/numpy_pickle.py", line 526, in _unpickle
    obj = unpickler.load()
  File "/home/ubuntu/anaconda3/lib/python3.7/pickle.py", line 1085, in load
    dispatch[key[0]](self)
  File "/home/ubuntu/anaconda3/lib/python3.7/site-packages/joblib/numpy_pickle.py", line 339, in load_build
    Unpickler.load_build(self)
  File "/home/ubuntu/anaconda3/lib/python3.7/pickle.py", line 1549, in load_build
    setstate(state)
  File "/home/ubuntu/anaconda3/lib/python3.7/site-packages/xgboost-1.0.0_SNAPSHOT-py3.7.egg/xgboost/core.py", line 1132, in __setstate__
    _LIB.XGBoosterUnserializeFromBuffer(handle, ptr, length))
  File "/home/ubuntu/anaconda3/lib/python3.7/site-packages/xgboost-1.0.0_SNAPSHOT-py3.7.egg/xgboost/core.py", line 189, in _check_call
    raise XGBoostError(py_str(_LIB.XGBGetLastError()))
xgboost.core.XGBoostError: [10:43:02] src/learner.cc:660: Check failed: header == serialisation_header_ (

Приведенный выше код прекрасно работает в windows и в ma c os.

Ответы [ 2 ]

0 голосов
/ 16 января 2020

В моем случае эта ошибка была вызвана тем, что мои версии xgboost немного отличались. Моя модель была обучена с использованием процессорной реализации xgboost. После сборки и установки xgboost с поддержкой GPU модель, которая была обучена на CPU, больше не загружалась. Переустановка обычной версии xgboost из pypi, похоже, решила мою проблему.

0 голосов
/ 10 января 2020

У меня была похожая проблема при попытке загрузить файл консервирования, который был протравлен на другом компьютере, и это было связано с разной сериализацией рассола в Python 2 и Python 3 - или, возможно, даже в разных версиях самого маринада.

Попробуйте проверить версию python и сделать их совпадающими:)

...