Развернуть модель TensorFlow на сервере?

Я пытаюсь развернуть приложение Python ML (созданное с использованием Streamlit) на сервере. Это приложение, по сути, загружает модель нейронной сети, которую я ранее обучил, и делает прогнозы классификации с использованием этой модели.

Проблема, с которой я сталкиваюсь, заключается в том, что, поскольку TensorFlow является таким большим пакетом (по крайней мере, 150 МБ для последней версии tensorflow-cpu), служба хостинга, которую я пытаюсь использовать (Heroku), постоянно сообщает мне, что я превышаю лимит хранилища в 300 МБ.

Мне было интересно, есть ли у кого-нибудь еще подобные проблемы или идея, как исправить/обойти эту проблему?

Что я уже пробовал

  • Я уже пытался заменить требование tensorflow на tensorflow-cpu, что значительно уменьшило размер, но все равно было слишком большим, так что -
  • Я также попытался понизить версию tensorflow-cpu до tensorflow-cpu==2.1.0, которая, наконец, сработала, но затем я столкнулся с проблемами в model.load() (что, я думаю, может быть связано с тем фактом, что я понизил версию tf, так как локально работает нормально)

person Ken    schedule 14.01.2021    source источник


Ответы (2)


Я столкнулся с той же проблемой в прошлом году. Я знаю, что это не отвечает на ваш конкретный вопрос Heroku, но я решил использовать Docker с AWS Beanstalk. Это получилось дешевле, чем Heroku, и у меня было меньше проблем с развертыванием. Могу подсказать как это сделать, если интересно

person The_flash    schedule 18.01.2021
comment
Будет ли этот метод поддерживать непрерывное развертывание и будет бесплатным? Если это так, я был бы признателен за помощь в запуске! - person Ken; 21.01.2021
comment
Возможен CI/CD. You can get free AWS credits здесь. Чтобы докеризировать ваше приложение, перейдите по этой ссылке. Дайте мне знать, если вы застряли! - person The_flash; 21.01.2021

Возможно, у вас загружено несколько модулей. Я бы порекомендовал вам открыть проводник и посмотреть фактический каталог загруженных модулей.

person Josh Grewal    schedule 14.01.2021
comment
не могли бы вы уточнить это? Что вы подразумеваете под несколькими модулями? Я использовал файл requirements.txt для развертывания, поэтому загружаемые модули должны быть только модулями в файле requirements.txt, верно? - person Ken; 15.01.2021
comment
Я считаю, что иногда у вас может быть несколько копий одного и того же модуля. Это случилось со мной с yfinance и испортил вещи. - person Josh Grewal; 15.01.2021