#python #scikit-learn #pickle #pythonanywhere
#python #scikit-learn #рассол #pythonanywhere
Вопрос:
Я хочу использовать модуль pickle и сериализовать модель, изученную на моем компьютере:
pickle.dump(clf, open(os.path.join(dest, 'classifier.pkl'), 'wb'), protocol=4)
Когда я открываю его и на своем компьютере, все работает нормально:
clf = pickle.load(open(os.path.join('pkl_objects', 'classifier.pkl'), 'rb'))
К сожалению, когда я делаю то же самое на pythonanywhere.com Я получаю сообщение об ошибке:
ModuleNotFoundError: No module named 'sklearn.linear_model._stochastic_gradient'
У меня есть следующие версии scikit-learn:
- на моем компьютере: 0.23.2
- pythonanywhere.com составляет 0,21,3
Как его стандартизировать?
Ответ №1:
Вы можете создать requirement.txt
файл, в котором вы определяете все необходимые зависимости с версиями. Или вы можете создать виртуальную среду, как в документах. Или вы можете попробовать запустить pip install scikit-learn --upgrade
.
Комментарии:
1. Спасибо. Я обновил scikit-learn на pythonanywhere до той же версии, что и на моем компьютере в консоли bash: pip3.8 install —user sklearn —upgrade scikit-learn == 0.23.2
Ответ №2:
Этот код также помог мне:
из sklearn.linear_model импортируйте SGDRegressor model_SGDRegressor=SGDRegressor()
Комментарии:
1. Этот ответ может выиграть от некоторого улучшения. Было бы полезно получить более подробную пояснительную информацию.