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

Пойми, как экспортировать в формат TF SavedModel из YOLOv8

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

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

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

Формат TensorFlow SavedModel является частью экосистемы TensorFlow , разработанной Google , как показано ниже. Он предназначен для беспрепятственного сохранения и сериализации моделей TensorFlow . В нем заключены все детали моделей, такие как архитектура, веса и даже информация о компиляции. Это упрощает обмен, развертывание и продолжение обучения в различных средах.

TF SavedModel

У TF SavedModel есть ключевое преимущество - совместимость. Она отлично работает с TensorFlow Serving, TensorFlow Lite и TensorFlow.js. Такая совместимость упрощает совместное использование и развертывание моделей на различных платформах, включая веб- и мобильные приложения. Формат TF SavedModel полезен как для исследований, так и для производства. Он обеспечивает единый способ управления твоими моделями, гарантируя, что они готовы для любого приложения.

Ключевые особенности TF SavedModels

Вот ключевые особенности, которые делают TF SavedModel отличным вариантом для разработчиков ИИ:

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

  • Простота развертывания: TF SavedModel объединяет вычислительный граф, обученные параметры и необходимые метаданные в единый пакет. Их можно легко загрузить и использовать для выводов, не требуя оригинального кода, который построил модель. Это делает развертывание моделей TensorFlow простым и эффективным в различных производственных средах.

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

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

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

TF SavedModel предоставляет ряд возможностей для развертывания твоих моделей машинного обучения:

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

  • Облачные платформы: Крупные облачные провайдеры, такие как Google Cloud Platform (GCP), Amazon Web Services (AWS) и Microsoft Azure, предлагают сервисы для развертывания и запуска TensorFlow моделей, включая TF SavedModels. Эти сервисы предоставляют масштабируемую и управляемую инфраструктуру, что позволяет тебе легко разворачивать и масштабировать свои модели.

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

  • TensorFlow Время выполнения: TensorFlow Время выполнения (tfrt) - это высокопроизводительная среда выполнения для выполнения TensorFlow Графики. Он предоставляет низкоуровневые API для загрузки и запуска TF SavedModels в средах C++. TensorFlow Среда выполнения обеспечивает более высокую производительность по сравнению со стандартной TensorFlow Среды выполнения. Он подходит для сценариев развертывания, требующих вывода с низкой задержкой и тесной интеграции с существующими базами кода C++.

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

Экспортируя модели YOLOv8 в формат TF SavedModel, ты повышаешь их адаптивность и простоту развертывания на различных платформах.

Установка

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

Установка

# 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 SavedModel format
model.export(format="saved_model")  # creates '/yolov8n_saved_model'

# Load the exported TF SavedModel model
tf_savedmodel_model = YOLO("./yolov8n_saved_model")

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

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

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

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

Теперь, когда ты экспортировал свою модель YOLOv8 в формат TF SavedModel, следующим шагом будет ее развертывание. Основным и рекомендуемым первым шагом для запуска модели TF GraphDef является использование метода YOLO("./yolov8n_saved_model"), как было показано ранее в фрагменте кода использования.

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

Резюме

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

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

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

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

Как экспортировать модель Ultralytics YOLO в формат TensorFlow SavedModel ?

Экспортировать модель Ultralytics YOLO в формат TensorFlow SavedModel очень просто. Для этого ты можешь использовать либо Python , либо CLI :

Экспорт YOLOv8 в TF SavedModel

from ultralytics import YOLO

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

# Export the model to TF SavedModel format
model.export(format="saved_model")  # creates '/yolov8n_saved_model'

# Load the exported TF SavedModel for inference
tf_savedmodel_model = YOLO("./yolov8n_saved_model")
results = tf_savedmodel_model("https://ultralytics.com/images/bus.jpg")
# Export the YOLOv8 model to TF SavedModel format
yolo export model=yolov8n.pt format=saved_model  # creates '/yolov8n_saved_model'

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

За подробностями обращайся к документацииUltralytics Export.

Почему я должен использовать формат TensorFlow SavedModel ?

Формат TensorFlow SavedModel дает несколько преимуществ для развертывания моделей:

  • Переносимость: Он обеспечивает нейтральный к языку формат, что упрощает обмен моделями и их развертывание в различных средах.
  • Совместимость: Легко интегрируется с такими инструментами, как TensorFlow Serving, TensorFlow Lite и TensorFlow.js, которые необходимы для развертывания моделей на различных платформах, включая веб- и мобильные приложения.
  • Полная инкапсуляция: Кодирует архитектуру модели, веса и информацию о компиляции, что позволяет легко делиться ими и продолжать обучение.

О дополнительных преимуществах и вариантах развертывания читай на сайте Ultralytics YOLO Варианты развертывания модели.

Каковы типичные сценарии развертывания TF SavedModel ?

TF SavedModel может быть развернут в различных средах, включая:

  • TensorFlow Сервировка: Идеально подходит для производственных сред, требующих масштабируемого и высокопроизводительного обслуживания моделей.
  • Облачные платформы: Поддерживает основные облачные сервисы, такие как Google Cloud Platform (GCP), Amazon Web Services (AWS) и Microsoft Azure, для масштабируемого развертывания моделей.
  • Мобильные и встраиваемые устройства: Использование TensorFlow Lite для преобразования TF SavedModels позволяет развернуть его на мобильных устройствах, IoT-устройствах и микроконтроллерах.
  • TensorFlow Время выполнения: Для сред на C++, где нужны выводы с низкой задержкой и высокой производительностью.

Подробные варианты развертывания можно найти в официальных руководствах по развертыванию моделей TensorFlow .

Как установить необходимые пакеты для экспорта моделей YOLOv8 ?

Чтобы экспортировать модели YOLOv8 , тебе нужно установить ultralytics Пакет. Выполни следующую команду в своем терминале:

pip install ultralytics

Более подробные инструкции по установке и лучшие практики ты найдешь в нашем руководстве по установкеUltralytics . Если у тебя возникнут проблемы, обратись к нашему руководству "Общие проблемы".

Каковы ключевые особенности формата TensorFlow SavedModel ?

TF SavedModel Формат выгоден для разработчиков ИИ благодаря следующим особенностям:

  • Портативность: Позволяет без особых усилий делиться и разворачиваться в различных средах.
  • Простота развертывания: Инкапсулирует вычислительный граф, обученные параметры и метаданные в единый пакет, что упрощает загрузку и вывод.
  • Управление активами: Поддерживает внешние активы, такие как словари, обеспечивая их доступность при загрузке модели.

Для получения более подробной информации изучи официальную документацию TensorFlow .



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

Комментарии