Наукой о данных занимаются студенты и специалисты из разных областей, таких как управление бизнесом, финансовые услуги, медицина и здравоохранение, сельское хозяйство, информация, технологии, академические науки, правоохранительные органы и т. д. Крайне важно развернуть модели машинного обучения и создать пользовательский интерфейс. для передачи готовой модели клиентам. Однако проектирование пользовательских интерфейсов и серверных частей требует больше усилий, чем разработка моделей машинного обучения. Вы должны написать много строк кода и требуется значительное количество энергии и времени. Обычные среды развертывания, такие как 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.