Ultralytics YOLO27:
Get Started

Как экспортировать 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 — отличный вариант для разработчиков AI:

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

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

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

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

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

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

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

  • Облачные платформы: крупные облачные провайдеры, такие как Google Cloud Platform (GCP), Amazon Web Services (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, возникнут сложности, решения и советы найдешь в руководстве по распространенным проблемам.

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

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

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

Экспорт
from ultralytics import YOLO

# Загрузи модель YOLO26
model = YOLO("yolo26n.pt")

# Экспортируй модель в формат TF SavedModel
model.export(format="saved_model")  # creates 'yolo26n_saved_model'
Предсказание
from ultralytics import YOLO

# Загрузи экспортированную модель TF SavedModel
model = YOLO("./yolo26n_saved_model")

# Выполнить инференс
results = model("https://ultralytics.com/images/bus.jpg")
Проверка
from ultralytics import YOLO

# Загрузи экспортированную модель TF SavedModel
model = YOLO("./yolo26n_saved_model")

# Проверить точность на наборе данных COCO8
metrics = model.val(data="coco8.yaml")

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

АргументТипПо умолчаниюОписание
formatstr'saved_model'Целевой формат экспортируемой модели, определяющий совместимость с различными средами развертывания.
imgszint или tuple640Заданный размер изображения на входе модели. Можно указать целое число для квадратных изображений или кортеж (height, width) для конкретных размеров.
quantizeint или strNoneТочность квантования: 8 (INT8/PTQ; требуется калибровка data/fraction) или 32/без значения (FP32). Экспорт SavedModel не поддерживает FP16. Заменяет устаревший флаг int8.
opsetintNoneЗадает версию opset ONNX для промежуточного графа 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 Platform.

Итоги#

В этом руководстве мы рассмотрели, как экспортировать модели 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
    
    # Загрузи модель YOLO26
    model = YOLO("yolo26n.pt")
    
    # Экспортируй модель в формат TF SavedModel
    model.export(format="saved_model")  # creates 'yolo26n_saved_model'
    
    # Загрузи экспортированную модель TF SavedModel для инференса
    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 SavedModel с помощью LiteRT (ранее TensorFlow Lite) позволяет развертывать модели на мобильных устройствах, устройствах IoT и микроконтроллерах.
    • Среда выполнения TensorFlow: подходит для сред C++, где требуется инференс с низкой задержкой и более высокой производительностью.

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

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

    pip install ultralytics

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

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

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

    Подробнее см. в официальной документации TensorFlow.

Комментарии