Как экспортировать модели YOLO11 в формат TF SavedModel
Развертывание моделей машинного обучения может быть сложной задачей. Однако использование эффективного и гибкого формата моделей может облегчить вашу работу. TF SavedModel — это платформа машинного обучения с открытым исходным кодом, используемая TensorFlow для согласованной загрузки моделей машинного обучения. Это как чемодан для моделей TensorFlow, который позволяет легко переносить и использовать их на различных устройствах и в системах.
Умение экспортировать модели Ultralytics YOLO11 в формат TF SavedModel поможет вам легко развертывать модели на различных платформах и в средах. В этом руководстве мы рассмотрим, как преобразовать ваши модели в формат TF SavedModel, упрощая процесс выполнения выводов с вашими моделями на различных устройствах.
Зачем экспортировать в TF SavedModel?
Формат TensorFlow SavedModel является частью экосистемы TensorFlow, разработанной Google, как показано ниже. Он предназначен для сохранения и сериализации моделей TensorFlow. Он инкапсулирует полные сведения о моделях, такие как архитектура, веса и даже информацию о компиляции. Это упрощает совместное использование, развертывание и продолжение обучения в различных средах.
TF SavedModel имеет ключевое преимущество: совместимость. Он хорошо работает с TensorFlow Serving, TensorFlow Lite и TensorFlow.js. Эта совместимость упрощает совместное использование и развертывание моделей на различных платформах, включая веб- и мобильные приложения. Формат TF SavedModel полезен как для исследований, так и для производства. Он предоставляет унифицированный способ управления вашими моделями, гарантируя их готовность к любому приложению.
Основные характеристики TF SavedModels
Вот основные функции, которые делают TF SavedModel отличным вариантом для разработчиков AI:
-
Переносимость: TF SavedModel предоставляет нейтральный к языку, восстанавливаемый, герметичный формат сериализации. Они позволяют системам и инструментам более высокого уровня создавать, использовать и преобразовывать модели TensorFlow. SavedModels можно легко совместно использовать и развертывать на различных платформах и в средах.
-
Простота развертывания: TF SavedModel объединяет вычислительный граф, обученные параметры и необходимые метаданные в один пакет. Их можно легко загрузить и использовать для логического вывода, не требуя исходного кода, который построил модель. Это делает развертывание моделей TensorFlow простым и эффективным в различных производственных средах.
-
Управление активами: TF SavedModel поддерживает включение внешних активов, таких как словари, вложения или таблицы поиска. Эти активы хранятся вместе с определением графа и переменными, гарантируя, что они будут доступны при загрузке модели. Эта функция упрощает управление и распространение моделей, которые полагаются на внешние ресурсы.
Варианты развертывания с TF SavedModel
Прежде чем мы углубимся в процесс экспорта моделей YOLO11 в формат TF SavedModel, давайте рассмотрим некоторые типичные сценарии развертывания, в которых используется этот формат.
TF SavedModel предоставляет ряд опций для развертывания ваших моделей машинного обучения:
-
TensorFlow Serving: 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++.
Экспорт моделей YOLO11 в TF SavedModel
Экспортируя модели YOLO11 в формат TF SavedModel, вы повышаете их адаптируемость и простоту развертывания на различных платформах.
Установка
Чтобы установить необходимый пакет, выполните:
Установка
# Install the required package for YOLO11
pip install ultralytics
Подробные инструкции и рекомендации, касающиеся процесса установки, см. в нашем руководстве по установке Ultralytics. Если во время установки необходимых пакетов для YOLO11 у вас возникнут какие-либо трудности, обратитесь к нашему руководству по распространенным проблемам для получения решений и советов.
Использование
Все модели Ultralytics YOLO11 разработаны для поддержки экспорта из коробки, что упрощает их интеграцию в предпочитаемый вами рабочий процесс развертывания. Вы можете просмотреть полный список поддерживаемых форматов экспорта и параметров конфигурации, чтобы выбрать оптимальную настройку для вашего приложения.
Использование
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to TF SavedModel format
model.export(format="saved_model") # creates '/yolo11n_saved_model'
# Load the exported TF SavedModel model
tf_savedmodel_model = YOLO("./yolo11n_saved_model")
# Run inference
results = tf_savedmodel_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to TF SavedModel format
yolo export model=yolo11n.pt format=saved_model # creates '/yolo11n_saved_model'
# Run inference with the exported model
yolo predict model='./yolo11n_saved_model' source='https://ultralytics.com/images/bus.jpg'
Аргументы экспорта
Аргумент | Тип | По умолчанию | Описание |
---|---|---|---|
format |
str |
'saved_model' |
Целевой формат для экспортируемой модели, определяющий совместимость с различными средами развертывания. |
imgsz |
int или tuple |
640 |
Желаемый размер изображения для ввода модели. Может быть целым числом для квадратных изображений или кортежем (height, width) для конкретных размеров. |
keras |
bool |
False |
Обеспечивает экспорт в формат Keras, обеспечивая совместимость с TensorFlow serving и API. |
int8 |
bool |
False |
Активирует квантование INT8, дополнительно сжимая модель и ускоряя вывод с минимальной потерей точности, в основном для периферийных устройств. |
nms |
bool |
False |
Добавляет Non-Maximum Suppression (NMS), необходимую для точной и эффективной постобработки обнаружения. |
batch |
int |
1 |
Указывает размер пакета для модели экспорта или максимальное количество изображений, которые экспортируемая модель будет обрабатывать одновременно в режиме predict режиме. |
device |
str |
None |
Указывает устройство для экспорта: CPU (device=cpu ), MPS для Apple silicon (device=mps ). |
Для получения более подробной информации о процессе экспорта посетите страницу документации Ultralytics по экспорту.
Развертывание экспортированных моделей YOLO11 TF SavedModel
Теперь, когда вы экспортировали свою модель YOLO11 в формат TF SavedModel, следующим шагом является ее развертывание. Основным и рекомендуемым первым шагом для запуска модели TF SavedModel является использование YOLO("yolo11n_saved_model/")
метод, как было показано ранее во фрагменте кода.
Однако для получения подробных инструкций по развертыванию ваших моделей TF SavedModel ознакомьтесь со следующими ресурсами:
-
TensorFlow Serving: Документация для разработчиков о том, как развертывать ваши TF SavedModel модели с помощью TensorFlow Serving.
-
Запуск TensorFlow SavedModel в Node.js: Статья в блоге TensorFlow о запуске TensorFlow SavedModel в Node.js напрямую, без преобразования.
-
Развертывание в облаке: Статья в блоге TensorFlow о развертывании модели TensorFlow SavedModel на платформе Cloud AI.
Обзор
В этом руководстве мы рассмотрели, как экспортировать модели Ultralytics YOLO11 в формат TF SavedModel. Экспортируя в TF SavedModel, вы получаете гибкость в оптимизации, развертывании и масштабировании ваших моделей YOLO11 на широком спектре платформ.
Для получения более подробной информации об использовании посетите официальную документацию TF SavedModel.
Для получения дополнительной информации об интеграции Ultralytics YOLO11 с другими платформами и фреймворками, не забудьте ознакомиться с нашей страницей руководства по интеграции. Там вы найдете множество полезных ресурсов, которые помогут вам максимально эффективно использовать YOLO11 в ваших проектах.
Часто задаваемые вопросы
Как экспортировать модель Ultralytics YOLO в формат TensorFlow SavedModel?
Экспорт модели Ultralytics YOLO в формат TensorFlow SavedModel — простая задача. Вы можете использовать python или CLI для достижения этой цели:
Экспорт YOLO11 в TF SavedModel
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to TF SavedModel format
model.export(format="saved_model") # creates '/yolo11n_saved_model'
# Load the exported TF SavedModel for inference
tf_savedmodel_model = YOLO("./yolo11n_saved_model")
results = tf_savedmodel_model("https://ultralytics.com/images/bus.jpg")
# Export the YOLO11 model to TF SavedModel format
yolo export model=yolo11n.pt format=saved_model # creates '/yolo11n_saved_model'
# Run inference with the exported model
yolo predict model='./yolo11n_saved_model' source='https://ultralytics.com/images/bus.jpg'
Обратитесь к документации Ultralytics по экспорту для получения более подробной информации.
Почему стоит использовать формат TensorFlow SavedModel?
Формат TensorFlow SavedModel предлагает несколько преимуществ для развертывания моделей:
- Переносимость: Он предоставляет нейтральный к языку формат, что упрощает обмен и развертывание моделей в различных средах.
- Совместимость: Легко интегрируется с такими инструментами, как TensorFlow Serving, TensorFlow Lite и TensorFlow.js, которые необходимы для развертывания моделей на различных платформах, включая веб- и мобильные приложения.
- Полная инкапсуляция: Кодирует архитектуру модели, веса и информацию о компиляции, что позволяет легко обмениваться и продолжать обучение.
Для получения дополнительной информации о преимуществах и вариантах развертывания ознакомьтесь с вариантами развертывания моделей Ultralytics YOLO.
Каковы типичные сценарии развертывания для TF SavedModel?
TF SavedModel можно развернуть в различных средах, включая:
- TensorFlow Serving: Идеально подходит для производственных сред, требующих масштабируемого и высокопроизводительного обслуживания моделей.
- Облачные платформы: Поддерживает основные облачные сервисы, такие как Google Cloud Platform (GCP), Amazon Web Services (AWS) и Microsoft Azure, для масштабируемого развертывания моделей.
- Мобильные и встраиваемые устройства: Использование TensorFlow Lite для преобразования TF SavedModels позволяет развертывать их на мобильных устройствах, IoT-устройствах и микроконтроллерах.
- TensorFlow Runtime: Для сред C++, требующих логического вывода с низкой задержкой и повышенной производительностью.
Для получения подробной информации о вариантах развертывания посетите официальные руководства по развертыванию моделей TensorFlow.
Как установить необходимые пакеты для экспорта моделей YOLO11?
Для экспорта моделей YOLO11 необходимо установить ultralytics
пакет. Выполните следующую команду в вашем терминале:
pip install ultralytics
Для получения более подробных инструкций по установке и рекомендаций обратитесь к нашему руководству по установке Ultralytics. Если у вас возникнут какие-либо проблемы, обратитесь к нашему руководству по распространенным проблемам.
Каковы ключевые особенности формата TensorFlow SavedModel?
Формат TF SavedModel полезен для разработчиков AI благодаря следующим функциям:
- Переносимость: Позволяет легко обмениваться и развертывать модели в различных средах.
- Простота развертывания: Инкапсулирует вычислительный граф, обученные параметры и метаданные в единый пакет, что упрощает загрузку и вывод.
- Управление активами: Поддерживает внешние активы, такие как словари, обеспечивая их доступность при загрузке модели.
Для получения более подробной информации ознакомьтесь с официальной документацией TensorFlow.