Python Anywhere — нет модуля с именем ‘sklearn.linear_model._stochastic_gradient’

#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. Этот ответ может выиграть от некоторого улучшения. Было бы полезно получить более подробную пояснительную информацию.