Почему я получаю ошибку расщепления для постоянной модели sklearn? - PullRequest
2 голосов
/ 31 января 2020

У меня есть обученная модель дерева решений, которую я создал в исследовательской записной книжке Google и вот так:

pickle.dump(tree, open(tree_15.sav, 'wb'))

У нас есть проект онлайн-анализа, построенный из docker, создающий ту же среду, в которой Я использовал для создания модели. (И некоторые другие пакеты для других функций.) Я хочу импортировать свою модель в этот другой проект со следующей строкой:

predictive_model = pickle.load(open(self.sav_path, 'rb'), fix_imports=True, encoding='latin1')

Но я получаю:

_pickle.UnpicklingError: invalid load key, '\xef'.

Забавная вещь есть, я не могу воспроизвести ту же ошибку локально. Я использую windows рабочий стол (поэтому у меня проблемы с сборкой из docker локально), но я использую одну и ту же версию каждого пакета, файл .sav не поврежден - ha sh выписка -, et c. Локально работает каждый раз. Предыдущая версия той же модели работала в сети. Я совершенно заблудился здесь, если честно.

1 Ответ

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

Часто gzip open() не имеет проблем, которые есть у встроенного open(), поэтому попробуйте следующее:

import gzip, pickle
with gzip.open(self.sav_path, 'rb') as f:
    predictive_model = pickle.load(f, fix_imports=True, encoding='latin1')
...