Как экспортировать YOLO26 в TF GraphDef для развертывания#
При развертывании передовых моделей компьютерного зрения, таких как YOLO26, в разных средах могут возникнуть проблемы совместимости. GraphDef от Google для TensorFlow, или TF GraphDef, решает эту проблему, предоставляя сериализованное платформонезависимое представление модели. Формат модели TF GraphDef позволяет развертывать YOLO26 в средах, где может быть недоступна полная экосистема TensorFlow, например на мобильных устройствах или специализированном оборудовании.
В этом руководстве мы пошагово расскажем, как экспортировать модели Ultralytics YOLO26 в формат TF GraphDef. Преобразовав модель, ты упростишь развертывание и сможешь использовать возможности компьютерного зрения YOLO26 в более широком спектре приложений и платформ.
Зачем экспортировать модель в TF GraphDef?#
TF GraphDef — это мощный компонент экосистемы TensorFlow, разработанный Google. Его можно использовать для оптимизации и развертывания моделей, таких как YOLO26. Экспорт в TF GraphDef позволяет переносить модели из исследований в реальные приложения. Модели могут работать в средах без полного фреймворка TensorFlow.
Формат GraphDef представляет модель в виде сериализованного вычислительного графа. Это позволяет применять различные методы оптимизации, например свертку констант, квантование и преобразования графа. Такие оптимизации обеспечивают эффективное выполнение, снижают потребление памяти и ускоряют инференс.
Модели GraphDef могут использовать аппаратные ускорители, такие как GPU, TPU и AI-чипы, что позволяет значительно повысить производительность конвейера инференса YOLO26. Формат TF GraphDef создает автономный пакет с моделью и ее зависимостями, упрощая развертывание и интеграцию в различные системы.
Ключевые особенности моделей TF GraphDef#
TF GraphDef предлагает ряд возможностей для упрощения развертывания моделей и их оптимизации.
Рассмотрим основные характеристики:
-
Сериализация моделей: TF GraphDef позволяет сериализовать и хранить модели TensorFlow в платформонезависимом формате. Благодаря такому представлению ты можешь загружать и выполнять модели без исходной кодовой базы на Python, что упрощает развертывание.
-
Оптимизация графов: TF GraphDef позволяет оптимизировать вычислительные графы. Такие оптимизации могут повысить производительность за счет упрощения потока выполнения, устранения избыточности и адаптации операций к конкретному оборудованию.
-
Гибкость развертывания: модели, экспортированные в формат GraphDef, можно использовать в различных средах, включая устройства с ограниченными ресурсами, веб-браузеры и системы со специализированным оборудованием. Это открывает возможности для более широкого развертывания моделей TensorFlow.
-
Ориентация на эксплуатацию: GraphDef разработан для развертывания в производственной среде. Он поддерживает эффективное выполнение, сериализацию и оптимизации, рассчитанные на реальные сценарии использования.
Варианты развертывания с TF GraphDef#
Прежде чем перейти к экспорту моделей YOLO26 в TF GraphDef, рассмотрим типичные сценарии развертывания, в которых используется этот формат.
Вот как эффективно развертывать модели с TF GraphDef на разных платформах.
-
TensorFlow Serving: этот фреймворк предназначен для развертывания моделей TensorFlow в производственной среде. TensorFlow Serving предоставляет инструменты управления моделями и их версиями, а также инфраструктуру для эффективной работы моделей в больших масштабах. Это простой способ интегрировать модели на основе GraphDef в производственные веб-сервисы или API.
-
Мобильные и встраиваемые устройства: с помощью таких инструментов, как LiteRT, ты можешь преобразовывать модели TF GraphDef в форматы, оптимизированные для смартфонов, планшетов и различных встраиваемых устройств. Затем эти модели можно использовать для инференса непосредственно на устройстве: вычисления выполняются локально, что часто повышает производительность и позволяет работать без подключения к сети.
-
Веб-браузеры: TensorFlow.js позволяет развертывать модели TF GraphDef прямо в веб-браузерах. Это открывает путь к приложениям для обнаружения объектов в реальном времени на стороне клиента, использующим возможности YOLO26 через JavaScript.
-
Специализированное оборудование: независимость TF GraphDef от платформы позволяет использовать его с заказным оборудованием, например ускорителями и TPU (тензорными процессорами). Такие устройства могут повысить производительность вычислительно сложных моделей.
Поддерживаемые задачи#
Экспорт TF GraphDef поддерживает шесть из семи задач Ultralytics. Семантическая сегментация и оценка глубины доступны только в YOLO26 — единственном семействе моделей с соответствующими головами. Модели для определения позы можно экспортировать, но инференс Ultralytics GraphDef для них пока не поддерживается.
| Задача | YOLOv8 | YOLO11 | YOLO26 |
|---|---|---|---|
| Обнаружение | ✅ | ✅ | ✅ |
| Сегментация | ✅ | ✅ | ✅ |
| Семантическая сегментация | ❌ | ❌ | ✅ |
| Глубина | ❌ | ❌ | ✅ |
| Классификация | ✅ | ✅ | ✅ |
| Оценка позы | ✅ | ✅ | ✅ |
| OBB | ❌ | ❌ | ❌ |
Экспорт моделей YOLO26 в TF GraphDef#
Ты можешь преобразовать модель YOLO26 в формат TF GraphDef, совместимый с различными системами, чтобы повысить ее производительность на разных платформах.
Установка#
Чтобы установить необходимый пакет, выполни команду:
# Install the required package for YOLO26
pip install ultralyticsПодробные инструкции и рекомендации по установке смотри в руководстве по установке Ultralytics. Если при установке пакетов, необходимых для YOLO26, возникнут сложности, решения и советы найдешь в руководстве по распространенным проблемам.
Использование#
Все модели Ultralytics YOLO26 изначально поддерживают экспорт, поэтому их легко интегрировать в предпочтительный процесс развёртывания. Чтобы выбрать оптимальную конфигурацию для своего приложения, посмотри полный список поддерживаемых форматов экспорта и параметров конфигурации.
Формат TF GraphDef поддерживает режимы Export, Predict и Validate, но для моделей определения позы пока доступен только экспорт. Экспортируй модель, а затем загрузи ее, чтобы запустить инференс или проверить точность.
from ultralytics import YOLO
# Загрузи модель YOLO26
model = YOLO("yolo26n.pt")
# Экспортируй модель в формат TF GraphDef
model.export(format="pb") # создает 'yolo26n.pb'from ultralytics import YOLO
# Загрузи экспортированную модель TF GraphDef
model = YOLO("yolo26n.pb")
# Выполнить инференс
results = model("https://ultralytics.com/images/bus.jpg")from ultralytics import YOLO
# Загрузи экспортированную модель TF GraphDef
model = YOLO("yolo26n.pb")
# Проверить точность на наборе данных COCO8
metrics = model.val(data="coco8.yaml")Аргументы экспорта#
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
format | str | 'pb' | Целевой формат экспортируемой модели, определяющий совместимость с различными средами развертывания. |
imgsz | int или tuple | 640 | Заданный размер изображения на входе модели. Можно указать целое число для квадратных изображений или кортеж (height, width) для конкретных размеров. |
quantize | int или str | None | Экспорт выполняется только в FP32. GraphDef не поддерживает преобразование точности в FP16, INT8 или W8A16 во время экспорта. |
opset | int | None | Задает версию opset ONNX для промежуточного графа ONNX. Если значение не задано, используется последняя поддерживаемая версия. |
batch | int | 1 | Задаёт размер пакета изображений для инференса экспортированной модели или максимальное количество изображений, которые экспортированная модель будет обрабатывать одновременно в режиме predict. |
device | str | None | Указывает устройство для экспорта: CPU (device=cpu), MPS для Apple silicon (device=mps). |
Подробнее о процессе экспорта смотри на странице документации Ultralytics об экспорте.
Развертывание экспортированных моделей YOLO26 в TF GraphDef#
После экспорта модели YOLO26 в формат TF GraphDef следующий шаг — развертывание. Основной и рекомендуемый способ запустить модель TF GraphDef — использовать метод YOLO("model.pb"), как показано ранее во фрагменте кода.
Дополнительные сведения о развертывании моделей TF GraphDef см. в следующих материалах:
-
TensorFlow Serving: руководство по TensorFlow Serving, в котором рассказывается, как эффективно развертывать модели машинного обучения и обеспечивать их работу в производственной среде.
-
TensorFlow Lite: на этой странице описано, как преобразовывать модели машинного обучения в формат, оптимизированный для инференса на устройстве с TensorFlow Lite.
-
TensorFlow.js: руководство по преобразованию моделей, в котором рассказывается, как преобразовать модели TensorFlow или Keras в формат TensorFlow.js для веб-приложений.
Итоги#
В этом руководстве мы рассмотрели, как экспортировать модели Ultralytics YOLO26 в формат TF GraphDef. Это позволяет гибко развертывать оптимизированные модели YOLO26 в различных средах.
Подробнее об использовании читай в официальной документации TF GraphDef.
Сведения об интеграции Ultralytics YOLO26 с другими платформами и фреймворками см. на странице руководства по интеграции.
Часто задаваемые вопросы#
Модели Ultralytics YOLO26 можно легко экспортировать в формат TensorFlow GraphDef (TF GraphDef). Этот формат представляет собой сериализованное платформонезависимое представление модели, которое идеально подходит для развертывания в различных средах, например на мобильных устройствах и в вебе. Чтобы экспортировать модель YOLO26 в TF GraphDef, выполни следующие действия:
Использованиеfrom ultralytics import YOLO # Загрузи модель YOLO26 model = YOLO("yolo26n.pt") # Экспортируй модель в формат TF GraphDef model.export(format="pb") # создает 'yolo26n.pb' # Загрузи экспортированную модель TF GraphDef tf_graphdef_model = YOLO("yolo26n.pb") # Выполнить инференс results = tf_graphdef_model("https://ultralytics.com/images/bus.jpg")Подробнее о различных вариантах экспорта читай в документации Ultralytics по экспорту моделей.
Экспорт моделей YOLO26 в формат TF GraphDef дает несколько преимуществ:
- Независимость от платформы: TF GraphDef — платформонезависимый формат, позволяющий развертывать модели в различных средах, включая мобильные устройства и веб-браузеры.
- Оптимизация: формат позволяет применять различные оптимизации, например свертку констант, квантование и преобразования графа, которые повышают эффективность выполнения и снижают потребление памяти.
- Аппаратное ускорение: модели в формате TF GraphDef могут использовать аппаратные ускорители, такие как GPU, TPU и AI-чипы, для повышения производительности.
Подробнее о преимуществах читай в разделе TF GraphDef нашей документации.
Ultralytics YOLO26 дает множество преимуществ по сравнению с другими моделями, например YOLOv5 и YOLOv7. К основным преимуществам относятся:
- Передовая производительность: YOLO26 обеспечивает высокую скорость и точность для обнаружения объектов, сегментации экземпляров, семантической сегментации и классификации в реальном времени.
- Простота использования: удобный API для обучения, валидации, предсказания и экспорта моделей делает библиотеку доступной как для новичков, так и для экспертов.
- Широкая совместимость: поддерживается экспорт во множество форматов, включая ONNX, TensorRT, CoreML и TensorFlow, что обеспечивает гибкость при развертывании.
Подробнее читай в нашем введении в YOLO26.
После экспорта модели YOLO26 в формат TF GraphDef ее можно развернуть на различных платформах со специализированным оборудованием. Типичные сценарии развертывания:
- TensorFlow Serving: используй TensorFlow Serving для масштабируемого развертывания моделей в производственной среде. Он поддерживает управление моделями и их эффективную подачу.
- Мобильные устройства: преобразуй модели TF GraphDef в TensorFlow Lite, оптимизированный для мобильных и встраиваемых устройств, чтобы запускать инференс непосредственно на устройстве.
- Веб-браузеры: развертывай модели с помощью TensorFlow.js для инференса на стороне клиента в веб-приложениях.
- AI-ускорители: используй TPU и заказные AI-чипы для ускорения инференса.
Подробную информацию см. в разделе варианты развертывания.
Для решения распространенных проблем с экспортом моделей YOLO26 Ultralytics предлагает подробные руководства и материалы. Если при установке или экспорте модели возникнут проблемы, обратись к следующим ресурсам:
- Руководство по распространенным проблемам: содержит решения часто возникающих проблем.
- Руководство по установке: пошаговые инструкции по установке необходимых пакетов.
Эти материалы помогут решить большинство проблем, связанных с экспортом и развертыванием моделей YOLO26.