Перейти к содержанию

Как экспортировать модели YOLO11 в формат TF SavedModel

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

Умение экспортировать модели Ultralytics YOLO11 в формат TF SavedModel поможет вам легко развертывать модели на различных платформах и в средах. В этом руководстве мы рассмотрим, как преобразовать ваши модели в формат 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 отличным вариантом для разработчиков 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.



📅 Создано 1 год назад ✏️ Обновлено 4 месяца назад

Комментарии