Узнай, как экспортировать модели 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 отлично подходит разработчикам ИИ:
-
Переносимость: 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 — единственном семействе, поставляемом с такими головами.
| Задача | YOLOv8 | YOLO11 | YOLO26 |
|---|---|---|---|
| Детекция | ✅ | ✅ | ✅ |
| Сегментация | ✅ | ✅ | ✅ |
| Семантическая сегментация | ❌ | ❌ | ✅ |
| Оценка глубины | ❌ | ❌ | ✅ |
| Классификация | ✅ | ✅ | ✅ |
| Поза | ✅ | ✅ | ✅ |
| OBB | ✅ | ✅ | ✅ |
Экспорт моделей 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'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")Аргументы экспорта#
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
format | str | 'saved_model' | Целевой формат экспортированной модели, определяющий совместимость с различными средами развёртывания. |
imgsz | int или tuple | 640 | Требуемый размер изображения для входных данных модели. Может быть целым числом для квадратных изображений или кортежем (height, width) для указания конкретных размеров. |
keras | bool | False | Позволяет экспортировать модель в формат Keras, обеспечивая совместимость с TensorFlow Serving и API. |
quantize | int или str | None | Точность квантования: 8 (INT8/PTQ; требуется калибровка data/fraction) или 32/не задано (FP32). FP16 не поддерживается при экспорте в SavedModel. Заменяет устаревший флаг int8. |
opset | int | None | Задает версию opset для промежуточного графа 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.
Итоги#
В этом руководстве мы рассмотрели экспорт моделей Ultralytics YOLO26 в формат TF SavedModel. Экспорт в TF SavedModel дает тебе возможность оптимизировать, развертывать и масштабировать модели YOLO26 на широком спектре платформ.
Дополнительные сведения об использовании доступны в официальной документации TF SavedModel.
Дополнительную информацию об интеграции Ultralytics YOLO26 с другими платформами и фреймворками см. на нашей странице руководства по интеграциям. Здесь собраны полезные ресурсы, которые помогут максимально эффективно использовать YOLO26 в твоих проектах.
Часто задаваемые вопросы#
Экспорт модели Ultralytics YOLO в формат TensorFlow SavedModel выполняется просто. Для этого можно использовать Python или CLI:
Экспорт YOLO26 в TF SavedModelfrom 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.