Пробовали заниматься машинным обучением и наконец создали свою модель? Что теперь? Пришло время развернуть его в Интернете для непрерывной работы!
Давайте посмотрим на 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 ❤️