Ultralytics YOLO27:

Узнай, как экспортировать модели YOLO26 в формат TF SavedModel#

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

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

Зачем экспортировать модели в TF SavedModel?#

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

TensorFlow SavedModel export format structure

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

Ключевые возможности TF SavedModel#

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

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

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

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

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

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

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

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

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

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

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

Поддерживаемые задачи#

Экспорт в TF SavedModel поддерживает все семь задач Ultralytics. Семантическая сегментация и оценка глубины доступны только в YOLO26 — единственном семействе, поставляемом с такими головами.

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

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

Установка#

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

Установка
# Install the required package for YOLO26
pip install ultralytics

Подробные инструкции и рекомендации по установке смотри в нашем руководстве по установке Ultralytics. Если при установке необходимых для YOLO26 пакетов возникнут трудности, обратись к руководству по распространенным проблемам, где encontrarás решения и советы.

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

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

Формат TF SavedModel поддерживает режимы Export, Predict и Validate. Экспортируй модель, затем загрузи экспортированную модель, чтобы запустить инференс или проверить ее точность.

Экспорт
from ultralytics import YOLO

# Load a YOLO26 model
model = YOLO("yolo26n.pt")

# Export the model to TF SavedModel format
model.export(format="saved_model")  # creates 'yolo26n_saved_model'
Predict
from ultralytics import YOLO

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

# Run inference
results = model("https://ultralytics.com/images/bus.jpg")
Валидация
from ultralytics import YOLO

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

# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")

Аргументы экспорта#

АргументТипПо умолчаниюОписание
formatstr'saved_model'Целевой формат экспортированной модели, определяющий совместимость с различными средами развёртывания.
imgszint или tuple640Требуемый размер изображения для входных данных модели. Может быть целым числом для квадратных изображений или кортежем (height, width) для указания конкретных размеров.
kerasboolFalseПозволяет экспортировать модель в формат Keras, обеспечивая совместимость с TensorFlow Serving и API.
quantizeint или strNoneТочность квантования: 8 (INT8/PTQ; требуется калибровка data/fraction) или 32/не задано (FP32). FP16 не поддерживается при экспорте в SavedModel. Заменяет устаревший флаг int8.
opsetintNoneЗадает версию opset для промежуточного графа ONNX. Если параметр не задан, используется последняя поддерживаемая версия.
nmsbool, необязательноNoneВыбери необработанный вывод (None, по умолчанию), встроенный NMS (True) или голову без NMS (False).
batchint1Задаёт размер пакета при инференсе экспортированной модели или максимальное количество изображений, которые экспортированная модель будет обрабатывать одновременно в режиме predict.
datastrNoneПуть к YAML-файлу датасета, необходимый для квантования; для классификации вместо этого указывается каталог датасета или имя встроенного датасета. Если параметр не задан вместе с quantize=8, Ultralytics выбирает датасет калибровки по умолчанию для задачи модели.
fractionfloat, int или list1.0Подмножество для калибровки в виде доли, количества изображений или значений [train, val, test] — долей/количеств. В списках из двух элементов test оставляет полный набор, а 0 пропускает его.
devicestrNoneУказывает устройство для экспорта: CPU (device=cpu), MPS для Apple silicon (device=mps).

Подробнее о процессе экспорта см. на странице документации Ultralytics об экспорте.

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

Теперь, когда ты экспортировал модель YOLO26 в формат TF SavedModel, следующий шаг — развернуть ее. Основным и рекомендуемым первым шагом для запуска модели TF SavedModel является использование метода YOLO("yolo26n_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 YOLO26 в формат TF SavedModel. Экспорт в TF SavedModel дает тебе возможность оптимизировать, развертывать и масштабировать модели YOLO26 на широком спектре платформ.

Дополнительные сведения об использовании доступны в официальной документации TF SavedModel.

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

Часто задаваемые вопросы#

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

    Экспорт YOLO26 в TF SavedModel
    from ultralytics import YOLO
    
    # Load a YOLO26 model
    model = YOLO("yolo26n.pt")
    
    # Export the model to TF SavedModel format
    model.export(format="saved_model")  # creates 'yolo26n_saved_model'
    
    # Load the exported TF SavedModel for inference
    tf_savedmodel_model = YOLO("./yolo26n_saved_model")
    results = tf_savedmodel_model("https://ultralytics.com/images/bus.jpg")

    Подробнее см. в документации Ultralytics по экспорту.

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

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

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

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

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

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

  • Для экспорта моделей YOLO26 необходимо установить пакет ultralytics. Выполни следующую команду в терминале:

    pip install ultralytics

    Подробные инструкции по установке и рекомендации см. в нашем руководстве по установке Ultralytics. Если возникнут проблемы, обратись к руководству по распространенным проблемам.

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

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

    Дополнительные сведения см. в официальной документации TensorFlow.

Комментарии