Как экспортировать YOLO26 в формат TF SavedModel#
Развертывание моделей машинного обучения может быть непростой задачей. Однако эффективный и гибкий формат модели упростит эту работу. TF SavedModel — это стандартный формат сериализации TensorFlow для сохранения и загрузки моделей машинного обучения единообразным способом. Это своего рода чемодан для моделей TensorFlow, который позволяет легко переносить их и использовать на разных устройствах и в разных системах.
Умение экспортировать модели Ultralytics YOLO26 в TF SavedModel поможет легко развертывать модели на разных платформах и в различных средах. В этом руководстве мы расскажем, как преобразовать модели в формат TF SavedModel, чтобы упростить запуск инференса на разных устройствах.
Зачем экспортировать модель в TF SavedModel?#
Формат TensorFlow SavedModel входит в экосистему TensorFlow, разработанную Google, как показано ниже. Он предназначен для удобного сохранения и сериализации моделей TensorFlow. Формат включает все сведения о модели, например архитектуру, веса и информацию о компиляции. Благодаря этому модели легко передавать, развертывать и продолжать обучать в разных средах.
Главное преимущество 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 — единственном семействе моделей с соответствующими головами.
| Задача | YOLOv8 | YOLO11 | YOLO26 |
|---|---|---|---|
| Обнаружение | ✅ | ✅ | ✅ |
| Сегментация | ✅ | ✅ | ✅ |
| Семантическая сегментация | ❌ | ❌ | ✅ |
| Глубина | ❌ | ❌ | ✅ |
| Классификация | ✅ | ✅ | ✅ |
| Оценка позы | ✅ | ✅ | ✅ |
| OBB | ✅ | ✅ | ✅ |
Экспорт моделей 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")Аргументы экспорта#
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
format | str | 'saved_model' | Целевой формат экспортируемой модели, определяющий совместимость с различными средами развертывания. |
imgsz | int или tuple | 640 | Заданный размер изображения на входе модели. Можно указать целое число для квадратных изображений или кортеж (height, width) для конкретных размеров. |
quantize | int или str | None | Точность квантования: 8 (INT8/PTQ; требуется калибровка data/fraction) или 32/без значения (FP32). Экспорт SavedModel не поддерживает FP16. Заменяет устаревший флаг int8. |
opset | int | None | Задает версию opset ONNX для промежуточного графа ONNX. Если значение не задано, используется последняя поддерживаемая версия. |
nms | bool, необязательно | None | Выбери необработанный выход (None, по умолчанию), встроенный NMS (True) или голову без NMS (False). |
batch | int | 1 | Задаёт размер пакета изображений для инференса экспортированной модели или максимальное количество изображений, которые экспортированная модель будет обрабатывать одновременно в режиме predict. |
data | str | None | Путь к YAML-файлу набора данных, необходимому для квантования; для классификации вместо него укажи каталог набора данных или название встроенного набора данных. Если не указать этот параметр вместе с quantize=8, Ultralytics выберет набор данных для калибровки по умолчанию для соответствующей задачи модели. |
fraction | float, int или list | 1.0 | Подмножество для калибровки, заданное как доля, количество изображений или [train, val, test] отношения/количества. Если список содержит два элемента, test остаётся без изменений, а 0 пропускает его. |
device | str | None | Указывает устройство для экспорта: 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 SavedModelfrom 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.