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

Пойми, как экспортировать в формат 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 Runtime: TensorFlow Runtime (tfrt) - это высокопроизводительная среда исполнения для выполнения графов TensorFlow . Она предоставляет API нижнего уровня для загрузки и запуска TF SavedModels в среде C++. TensorFlow Runtime предлагает более высокую производительность по сравнению со стандартной средой выполнения 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 в своих проектах.



Создано 2024-03-23, Обновлено 2024-04-02
Авторы: Бурхан Кью (1), Абирами Вина (1)

Комментарии