Наукой о данных занимаются студенты и специалисты из разных областей, таких как управление бизнесом, финансовые услуги, медицина и здравоохранение, сельское хозяйство, информация, технологии, академические науки, правоохранительные органы и т. д. Крайне важно развернуть модели машинного обучения и создать пользовательский интерфейс. для передачи готовой модели клиентам. Однако проектирование пользовательских интерфейсов и серверных частей требует больше усилий, чем разработка моделей машинного обучения. Вы должны написать много строк кода и требуется значительное количество энергии и времени. Обычные среды развертывания, такие как Django или Flask, хорошо известны и используются чаще всего, однако они могут быть сложными и занимать много времени. Что ж, теперь у нас есть несколько встроенных библиотек, которые упрощают процесс развертывания. Одним из таких пакетов является Gradio; библиотека Python, позволяющая быстро и легко создать пользовательский веб-интерфейс для готовой модели машинного обучения. В этом уроке я познакомлю вас с библиотекой Gradio и покажу, как вы можете использовать ее в своих проектах машинного обучения.
Предпосылки
Прежде чем приступить к этому руководству, вам понадобится следующее:
- Рабочий компьютер с установленным Python (версия ›3).
- Редактор кода или блокнот Jupyter (для этого можно использовать Anaconda или Visual Studio Code)
- Какое-то подключение к интернету.
Введение в Градио
Gradio — это библиотека Python, бесплатная и с открытым исходным кодом. Мы можем эффективно и просто разрабатывать интерфейсы пользовательского интерфейса в нашей записной книжке Python, делиться ими с кем угодно, написав всего несколько строк кода, и отображать результаты нашей завершенной модели. Gradio упрощает создание настраиваемых компонентов пользовательского интерфейса в Colab, блокнотах Jupyter, сценариях, моделях TensorFlow или PyTorch или даже случайных функциях Python.
Чтобы помочь вам начать работу с Gradio, я построил модель, которую мы будем использовать для создания простого веб-приложения для предсказания цветка ириса с использованием общедоступного набора данных о видах ириса, который может сказать вам, относится ли цветок ириса к типу setosa. , лишай или виргиния.
Начиная
Для этого демонстрационного проекта потребуются три библиотеки Python: Gradio, scikit-learn и pandas. Вы можете установить их с помощью команд pip ниже:
pip install gradio pip install sklearn pip install pandas
После успешной установки вы затем импортируете пакеты в свой блокнот/скрипт Python следующим образом:
И теперь мы готовы использовать Gradio для разработки потрясающего пользовательского интерфейса 😉.
Создание пользовательского интерфейса с помощью Gradio
Функция gradio.interface()
используется для установления интерфейсов с важными параметрами, такими как вход, выход и вызываемые функции. Функция launch()
используется для отображения интерфейса; после этого будет сгенерирован внешний URL-адрес, чтобы легко делиться и запускать интерфейс в браузере. Код веб-приложения на базе Gradio будет выглядеть так:
import gradio as gr from sklearn import datasets from sklearn.tree import DecisionTreeClassifier data = datasets.load_iris() X = data.data Y = data.target model= DecisionTreeClassifier() model.fit(X, Y) def iris(sepal_length ,sepal_width, petal_length, petal_width): prediction = model.predict([[sepal_length ,sepal_width, petal_length, petal_width]]) prediction= data.target_names[prediction]return prediction input1 = gr.inputs.Number(label="sepal length (cm)") input2 = gr.inputs.Number(label="sepal width (cm)") input3 = gr.inputs.Number(label="petal length (cm)") input4 = gr.inputs.Number(label="petal width (cm)") output = gr.outputs.Textbox(label= "Name of Species") gui = gr.Interface(fn=iris, inputs=[input1, input2, input3, input4], outputs=output).launch()
Теперь позвольте мне объяснить приведенный выше код построчно и разбить его, чтобы мы поняли, что делает каждая строка (или блок кода).
Импорт библиотек
В строках 1–3 мы импортируем библиотеку Gradio с псевдонимом gr
и пакет datasets
из библиотеки scikit-learn (sklearn) (которая будет использоваться для загрузки набора данных Iris в строке 5). Наконец, мы используем импорт метода DecisionTreeClassifier()
из пакета sklearn.tree
.
Построение модели
В строках 5–9 мы пишем фактическую настройку построения модели, как описано ниже:
- Строка 5: загружает набор данных Iris из пакета
sklearn.datasets
и назначает его переменнойdata
. - Строка 6: создает переменную
X
, содержащую 4 характеристики цветка (т. е. длину чашелистика, ширину чашелистика, длину лепестка и ширину лепестка), указанные вdata.data
. - Строка 7: создает переменную
Y
, относящуюся к метке класса Iris, представленной вdata.target
. - Строка 8: присваивает классификатор случайного леса, в частности функцию
DecisionTreeClassifier()
, переменнойmodel
. - Строка 9: обучает модель с помощью функции
model.fit()
, используя переменныеX
иY
в качестве входных аргументов. По сути, это означает, что модель классификации будет построена путем ее обучения с использованием четырех признаков цветка (X
) и метки класса (Y
).
Развертывание модели
В строках 12–33 библиотека Gradio используется для создания пользовательского интерфейса, как описано ниже:
- Строка 12: создается функция с именем
iris
с четырьмя аргументами, которые соответствуют номерам и именам функций, используемых при обучении модели. - Строка 13–14: функция
predict()
используется для предсказания названия цветка и присваивается переменной предсказания. - Строка 15: чтобы отображались метки классов (например, setosa, versicolor и virginica), нам нужно использовать переменную
prediction
в качестве аргумента в скобкахdata.target_names[prediction]
. - Строка 16: функция возвращает предсказанное значение
- Строка 18–28: входы и выходы помечены для большей ясности.
- Строка 31–34: интерфейс создается с помощью функции
interface()
, а функцияlaunch()
используется для отображения интерфейса.
Если вы запустите приложение Python, будет сгенерирован внешний URL-адрес, и вы сможете получить доступ к веб-интерфейсу в любом браузере (например, 49508.gradio.app), как показано на снимке экрана ниже.
Обратите внимание, что общедоступный URL-адрес истечет через 72 часа с момента его создания. Если вам нужна постоянная размещенная ссылка, вы можете использовать HuggingFace Spaces для размещения своего веб-приложения Gradio, как показано в демонстрации ниже.
Источник GIF: Gradio document
Заключение
Я надеюсь, что это руководство предоставит вам основы, необходимые для понимания библиотеки Gradio, и поможет вам начать работу с Gradio. Вы можете проверить полный код для демонстрации в этом репозитории GitHub или изучить расширенные функции Gradio. Спасибо за прочтение!
Рекомендации
Первоначально опубликовано на https://abdulsamodazeez.com.