Перейти к содержимому

Как экспортировать в TF GraphDef из YOLOv8 для развертывания

Когда ты используешь передовые модели компьютерного зрения, такие как YOLOv8, в различных средах, ты можешь столкнуться с проблемами совместимости. Google' TensorFlow GraphDef , или TF GraphDef , предлагает решение, предоставляя сериализованное, независимое от платформы представление твоей модели. Используя формат модели TF GraphDef , ты можешь развернуть свою YOLOv8 модель в средах, где полная TensorFlow экосистема может быть недоступна, например, на мобильных устройствах или специализированном оборудовании.

В этом руководстве мы шаг за шагом расскажем тебе о том, как экспортировать твои Ultralytics YOLOv8 модели в формат TF GraphDef . Конвертировав свою модель, ты сможешь упростить развертывание и использовать возможности YOLOv8'computer vision в более широком спектре приложений и платформ.

TensorFlow GraphDef

Почему тебе стоит экспортировать на TF GraphDef ?

TF GraphDef это мощный компонент экосистемы TensorFlow , который был разработан Google. Его можно использовать для оптимизации и развертывания моделей, подобных YOLOv8. Экспорт в TF GraphDef позволяет нам перенести модели из исследовательской области в реальные приложения. Он позволяет запускать модели в средах без полного фреймворка TensorFlow .

Формат GraphDef представляет модель в виде сериализованного графа вычислений. Это позволяет использовать различные техники оптимизации, такие как сворачивание констант, квантование и преобразование графов. Эти оптимизации обеспечивают эффективное выполнение, уменьшение использования памяти и более высокую скорость вывода.

Модели GraphDef могут использовать аппаратные ускорители, такие как GPU, TPU и чипы искусственного интеллекта, обеспечивая значительный прирост производительности для конвейера выводов YOLOv8. Формат TF GraphDef создает самодостаточный пакет с моделью и ее зависимостями, что упрощает развертывание и интеграцию в различные системы.

Ключевые особенности моделей TF GraphDef

TF GraphDef предлагает отличные функции для упрощения развертывания и оптимизации моделей.

Вот обзор его ключевых характеристик:

  • Сериализация моделей: TF GraphDef предоставляет способ сериализации и хранения TensorFlow моделей в платформонезависимом формате. Такое сериализованное представление позволяет загружать и выполнять модели без оригинальной Python кодовой базы, что упрощает развертывание.

  • Оптимизация графов: TF GraphDef позволяет оптимизировать вычислительные графы. Эти оптимизации могут повысить производительность за счет оптимизации потока выполнения, уменьшения избыточности и адаптации операций под конкретное оборудование.

  • Гибкость развертывания: Модели, экспортированные в формат GraphDef , можно использовать в различных средах, включая устройства с ограниченными ресурсами, веб-браузеры и системы со специализированным оборудованием. Это открывает возможности для более широкого развертывания твоих моделей TensorFlow .

  • Ориентация на производство: GraphDef предназначен для развертывания на производстве. Он поддерживает эффективное выполнение, функции сериализации и оптимизации, которые соответствуют реальным сценариям использования.

Варианты развертывания с TF GraphDef

Прежде чем мы погрузимся в процесс экспорта моделей YOLOv8 в TF GraphDef, давай рассмотрим несколько типичных ситуаций развертывания, в которых используется этот формат.

Вот как ты можешь эффективно развернуть TF GraphDef на разных платформах.

  • TensorFlow Сервировка: Этот фреймворк предназначен для развертывания моделей TensorFlow в производственных средах. TensorFlow Serving предлагает управление моделями, версионирование и инфраструктуру для эффективного обслуживания моделей в масштабе. Это беспроблемный способ интегрировать твои модели, основанные на GraphDef, в производственные веб-сервисы или API.

  • Мобильные и встраиваемые устройства: С помощью таких инструментов, как TensorFlow Lite, ты можешь конвертировать TF GraphDef модели в форматы, оптимизированные для смартфонов, планшетов и различных встраиваемых устройств. Затем твои модели можно использовать для выводов на устройстве, где выполнение происходит локально, что часто обеспечивает прирост производительности и возможность работы в автономном режиме.

  • Веб-браузеры: TensorFlow.js позволяет разворачивать TF GraphDef -модели непосредственно в веб-браузерах. Это открывает путь к созданию приложений для обнаружения объектов в реальном времени, работающих на стороне клиента и использующих возможности YOLOv8 через JavaScript.

  • Специализированное оборудование: TF GraphDef 's platform-agnostic nature allows it to target custom hardware, such as accelerators and TPUs (Tensor Processing Units). Эти устройства могут обеспечить преимущество в производительности для моделей с интенсивными вычислениями.

Экспорт моделей YOLOv8 в TF GraphDef

Ты можешь преобразовать свою модель обнаружения объектов YOLOv8 в формат TF GraphDef, совместимый с различными системами, чтобы улучшить ее производительность на разных платформах.

Установка

Чтобы установить нужный пакет, выполни:

Установка

# Install the required package for YOLOv8
pip install ultralytics

Для получения подробных инструкций и лучших практик, связанных с процессом установки, ознакомься с нашим руководством по установкеUltralytics . Во время установки необходимых пакетов для YOLOv8, если у тебя возникнут какие-либо трудности, обратись к нашему руководству по общим проблемам, чтобы найти решения и советы.

Использование

Прежде чем погрузиться в инструкцию по использованию, важно отметить, что, хотя все моделиUltralytics YOLOv8 доступны для экспорта, ты можешь убедиться, что выбранная тобой модель поддерживает функцию экспорта, здесь.

Использование

from ultralytics import YOLO

# Load the YOLOv8 model
model = YOLO("yolov8n.pt")

# Export the model to TF GraphDef format
model.export(format="pb")  # creates 'yolov8n.pb'

# Load the exported TF GraphDef model
tf_graphdef_model = YOLO("yolov8n.pb")

# Run inference
results = tf_graphdef_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLOv8n PyTorch model to TF GraphDef format
yolo export model=yolov8n.pt format=pb  # creates 'yolov8n.pb'

# Run inference with the exported model
yolo predict model='yolov8n.pb' source='https://ultralytics.com/images/bus.jpg'

Более подробно о поддерживаемых вариантах экспорта можно узнать на странице документацииUltralytics , посвященной вариантам развертывания.

Развертывание экспортированных YOLOv8 TF GraphDef моделей.

После того, как вы экспортировали файл YOLOv8 model в файл TF GraphDef Следующим шагом будет развертывание. Основной и рекомендуемый первый шаг для запуска TF GraphDef Модель заключается в том, чтобы использовать метод YOLO("model.pb"), как показано ранее во фрагменте кода использования.

Однако для получения дополнительной информации о развертывании твоих моделей TF GraphDef взгляни на следующие ресурсы:

  • TensorFlow Обслуживание: Руководство по TensorFlow Serving, которое учит, как эффективно разворачивать и обслуживать модели машинного обучения в производственных средах.

  • TensorFlow Lite: На этой странице описано, как конвертировать модели машинного обучения в формат, оптимизированный для выводов на устройстве, с помощью TensorFlow Lite.

  • TensorFlow.js: Руководство по конвертации моделей, которое учит, как преобразовывать модели TensorFlow или Keras в формат TensorFlow.js для использования в веб-приложениях.

Резюме

В этом руководстве мы рассмотрели, как экспортировать модели Ultralytics YOLOv8 в формат TF GraphDef. Сделав это, ты сможешь гибко развернуть свои оптимизированные модели YOLOv8 в различных средах.

Более подробную информацию об использовании можно найти в официальной документацииTF GraphDef .

Чтобы узнать больше об интеграции Ultralytics YOLOv8 с другими платформами и фреймворками, не забудь заглянуть на страницу нашего руководства по интеграции. На ней собраны отличные ресурсы и идеи, которые помогут тебе максимально эффективно использовать YOLOv8 в своих проектах.

ВОПРОСЫ И ОТВЕТЫ

Как экспортировать модель YOLOv8 в формат TF GraphDef ?

Ultralytics YOLOv8 Модели можно беспрепятственно экспортировать в формат TensorFlow GraphDef (TF GraphDef ). Этот формат обеспечивает сериализованное, независимое от платформы представление модели, идеально подходящее для развертывания в различных средах, таких как мобильная и веб-среда. Чтобы экспортировать модель YOLOv8 в формат TF GraphDef , выполни следующие шаги:

Использование

from ultralytics import YOLO

# Load the YOLOv8 model
model = YOLO("yolov8n.pt")

# Export the model to TF GraphDef format
model.export(format="pb")  # creates 'yolov8n.pb'

# Load the exported TF GraphDef model
tf_graphdef_model = YOLO("yolov8n.pb")

# Run inference
results = tf_graphdef_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLOv8n PyTorch model to TF GraphDef format
yolo export model="yolov8n.pt" format="pb"  # creates 'yolov8n.pb'

# Run inference with the exported model
yolo predict model="yolov8n.pb" source="https://ultralytics.com/images/bus.jpg"

Подробнее о различных вариантах экспорта читай в документацииUltralytics , посвященной экспорту моделей.

В чем преимущества использования TF GraphDef для развертывания YOLOv8 модели?

Экспорт моделей YOLOv8 в формат TF GraphDef дает множество преимуществ, включая:

  1. Независимость от платформы: TF GraphDef предоставляет платформонезависимый формат, что позволяет разворачивать модели в различных средах, включая мобильные и веб-браузеры.
  2. Оптимизации: Формат позволяет использовать несколько оптимизаций, таких как сворачивание констант, квантование и преобразование графов, которые повышают эффективность выполнения и уменьшают расход памяти.
  3. Аппаратное ускорение: Модели в формате TF GraphDef могут использовать аппаратные ускорители, такие как GPU, TPU и чипы искусственного интеллекта, для увеличения производительности.

Подробнее о преимуществах читай в разделеTF GraphDef нашей документации.

Почему я должен использовать Ultralytics YOLOv8 , а не другие модели обнаружения объектов?

Ultralytics YOLOv8 обладает множеством преимуществ по сравнению с другими моделями, такими как YOLOv5 и YOLOv7. Среди основных преимуществ можно выделить следующие:

  1. Современная производительность: YOLOv8 обеспечивает исключительную скорость и точность обнаружения, сегментации и классификации объектов в режиме реального времени.
  2. Простота использования: Удобный API для обучения, проверки, предсказания и экспорта моделей, что делает его доступным как для новичков, так и для экспертов.
  3. Широкая совместимость: Поддерживает множество форматов экспорта, включая ONNX, TensorRT, CoreML и TensorFlow, что обеспечивает универсальные возможности развертывания.

Узнай больше подробностей в нашей вводной части YOLOv8.

Как развернуть модель YOLOv8 на специализированном оборудовании с помощью TF GraphDef ?

После того как модель YOLOv8 экспортирована в формат TF GraphDef , ты можешь развернуть ее на различных специализированных аппаратных платформах. Типичные сценарии развертывания включают в себя:

  • TensorFlow Сервировка: Используй TensorFlow Serving для масштабируемого развертывания моделей в производственных средах. Он поддерживает управление моделями и эффективное обслуживание.
  • Мобильные устройства: Преобразуй модели TF GraphDef в TensorFlow Lite, оптимизированные для мобильных и встраиваемых устройств и позволяющие делать выводы на устройстве.
  • Веб-браузеры: Развертывай модели с помощью TensorFlow.js для проведения выводов на стороне клиента в веб-приложениях.
  • Ускорители искусственного интеллекта: Используй TPU и пользовательские чипы ИИ для ускорения вычислений.

За подробной информацией обращайся к разделу " Варианты развертывания ".

Где можно найти решения распространенных проблем при экспорте моделей YOLOv8 ?

Для устранения распространенных проблем с экспортом моделей YOLOv8 , Ultralytics предоставляет исчерпывающие руководства и ресурсы. Если ты столкнулся с проблемами во время установки или экспорта моделей, обратись к:

Эти ресурсы должны помочь тебе решить большинство проблем, связанных с экспортом и развертыванием моделей YOLOv8 .



Создано 2024-03-22, Обновлено 2024-07-05
Авторы: glenn-jocher (5), RizwanMunawar (1), Burhan-Q (1), abirami-vina (1)

Комментарии