Пробовали заниматься машинным обучением и наконец создали свою модель? Что теперь? Пришло время развернуть его в Интернете для непрерывной работы!

Давайте посмотрим на Streamlit, и я процитирую их собственные слова:

Самый быстрый способ создания приложений для обработки данных.

Streamlit позволяет создавать приложения для проектов машинного обучения с помощью обманчиво простых скриптов Python. Он поддерживает горячую перезагрузку, поэтому ваше приложение обновляется в реальном времени, когда вы редактируете и сохраняете файл. Не нужно возиться с HTTP-запросами, HTML, JavaScript и т. Д. Все, что вам нужно, - это ваш любимый редактор и браузер.

В этой статье я покажу вам, как взять вашу модель, создать приложение Streamlit и запустить его в производство, развернув на Heroku.

Сборка приложения Streamlit:

Использовать Streamlit действительно просто, вы можете узнать все о том, как использовать Streamlit как полный пакет, прямо здесь в документации.

Установка:

pip install streamlit

Шутки в сторону. Вот и все! (Я, конечно, шучу, вам нужно создать приложение, но суть вы поняли). Чтобы увидеть небольшую встроенную демонстрацию Streamlit, попробуйте использовать streamlit hello.

Приложение:

Чтобы продвинуться дальше, я продемонстрирую использование моего проекта под названием: Прогнозирование мощности ветра. Простая модель, построенная с использованием регрессии лассо на Jupyter Notebooks и сохраненная с помощью pickle.

git clone https://github.com/Madhav-Somanath/WindEnergyPredictor.git WindEnergyPredictor

После клонирования репозитория вы можете проверить приложение самостоятельно, используя:

cd WindEnergyPredictor
streamlit run app.py

Давайте посмотрим на часть приложения Streamlit в этом репозитории:

Я знаю, что это выглядит сложным, но единственное, что вам нужно знать из приведенного выше кода, - это следующие части, известные как «виджеты»:

Поле выбора:

direction = slt.sidebar.selectbox('Cardinal/Intercardinal Direction',('N','NNE','NEE','E','SEE','SSE','S','SSW','SWW','W','NWW','NNW'),key='direction')

Ползунок:

speed = slt.sidebar.slider('Wind Speed',3.0,25.5,step=1.0,key='speed')

Написать:

slt.write('Predicted Energy Output (KW/h):', predict.round(2))

Изображение:

slt.image(draw_graph(direction),use_column_width=True)

Вышеупомянутые виджеты будут чаще всего использоваться при создании приложений Streamlit. Вы даже можете добавить несколько страниц в собственное приложение.

Развертывание на Heroku:

Heroku - это платформа как услуга (PaaS), которая позволяет разработчикам создавать, запускать и управлять приложениями полностью в облаке.

Если вы клонировали репозиторий, который я дал в начале, вы увидите следующие файлы, в которые вы его клонировали:

.
├── app.py
├── requirements.txt
├── setup.sh
└── Procfile

Эти файлы необходимы для развертывания Streamlit с помощью Heroku. requirements.txt используется для объявления всего, что необходимо в развертываемой среде, а Procfile запускает фактическое приложение Streamlit для развертывания.

Завести аккаунт:

Сначала вам нужно будет создать учетную запись на Heroku здесь, размещение вашего приложения совершенно бесплатно.

Основным недостатком использования бесплатной учетной записи является то, что веб-сайт выйдет из строя, если он не был посещен более получаса, и вам придется перезапустить его, открыв сайт снова.

Развертывание Streamlit на Heroku:

Кажется, все хотят, чтобы вы загрузили Heroku CLI, но действительно ли это нужно? Просто зайдите на официальную страницу Heroku здесь, и приступим!

Назовите приложение любым доступным именем, выберите регион (подойдет любой регион) и нажмите Создать приложение.

Выберите GitHub в качестве метода развертывания и подключите собственный репозиторий для развертывания, нажмите «Подключиться», и все готово. Просмотрите ссылку, которую вы получите в конце процесса, и посмотрите свою собственную модель машинного обучения в виде веб-приложения в Интернете!

Если у вас есть страсть к изучению новых вещей в технологиях, таких как машинное обучение / глубокое обучение, или даже просто новых и интересных вещей в жизни, подпишитесь и свяжитесь со мной в LinkedIn и, возможно, посмотрите мои другие проекты (и отметьте свои любимые! ) на GitHub.

Вы также можете посетить мой личный сайт прямо здесь, если хотите узнать обо мне больше! Спасибо, что прочитали мою первую статью о Medium ❤️