О чём урок
В предыдущих разделах мы изучили и создали демо, используя класс Interface. В этом разделе мы представим наш свеже разработанный низкоуровневый API под названием gradio.Blocks.
Итак, в чем разница между Interface и Blocks?
- ⚡ Interface: высокоуровневый API, который позволяет создать полноценное демо машинного обучения, просто предоставив список входных и выходных данных.
- 🧱 Blocks: низкоуровневый API, который позволяет вам полностью контролировать потоки данных и компоновку вашего приложения. Вы можете создавать очень сложные, многоступенчатые приложения, используя Blocks (как "строительные блоки").
Как мы видели в предыдущих разделах, класс Interface позволяет легко создавать полноценные демо машинного обучения с помощью всего нескольких строк кода. API Interface чрезвычайно прост в использовании, но ему не хватает гибкости, которую обеспечивает API Blocks. Например, вы можете захотеть:
- Сгруппировать связанные демо в виде нескольких вкладок в одном веб-приложении
- Изменить макет вашего демо, например, указать, где расположены входные и выходные компоненты
- Многоступенчатые интерфейсы, в которых выход одной модели становится входом для следующей модели, или более гибкие потоки данных в целом
- Изменить свойства компонента (например, выбор в выпадающем списке) или его видимость на основе пользовательского ввода
Ниже мы рассмотрим все эти понятия.
После того как вы установили Gradio, запустите приведенный ниже код в виде сценария на Python, блокнота Jupyter или блокнота Colab.
В этом простом примере представлены 4 концепции, которые лежат в основе блоков:
- Блоки позволяют создавать веб-приложения, сочетающие в себе разметку, HTML, кнопки и интерактивные компоненты, просто инстанцируя объекты на Python в контексте with gradio.Blocks.
[!TIP] 🙋Если вы не знакомы с оператором with в Python, рекомендуем ознакомиться с отличным руководством от Real Python. Возвращайтесь сюда после его прочтения 🤗
Порядок, в котором вы инстанцируете компоненты, имеет значение, поскольку каждый элемент отображается в веб-приложении в том порядке, в котором он был создан. (Более сложные макеты рассматриваются ниже)
- Вы можете определять обычные функции Python в любом месте вашего кода и запускать их с пользовательским вводом…
План урока
- Почему Blocks 🧱?
- Создание простого демо с помощью блоков
- Настройка макета вашего демо
- Изучение событий и состояния
- Создание многоступенчатых демо
- Обновление свойств компонента
Урок входит в полный доступ. Полный текст и видео открываются после оплаты. Первые уроки каждого курса бесплатны.