Узнай, как экспортировать модели в формат TF SavedModel из YOLO26#
Развертывание моделей машинного обучения может быть сложной задачей. Однако использование эффективного и гибкого формата моделей может облегчить твою работу. 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 SavedModels, что упрощает развертывание и обслуживание твоих моделей на облачных платформах, локальных серверах или периферийных устройствах.
-
Облачные платформы: Основные облачные провайдеры, такие как Google Cloud Platform (GCP), Amazon Web Services (AWS) и Microsoft Azure, предлагают сервисы для развертывания и запуска моделей TensorFlow, включая TF SavedModels. Эти сервисы предоставляют масштабируемую и управляемую инфраструктуру, позволяя тебе легко развертывать и масштабировать модели.
-
Мобильные и встраиваемые устройства: LiteRT (ранее TensorFlow Lite), легкое решение для запуска моделей машинного обучения на мобильных, встраиваемых и IoT-устройствах, поддерживает конвертацию TF SavedModels в формат LiteRT. Это позволяет развертывать твои модели на самых разных устройствах: от смартфонов и планшетов до микроконтроллеров и периферийных устройств.
-
Среда выполнения TensorFlow: Среда выполнения TensorFlow (
tfrt) — это высокопроизводительная среда выполнения графов TensorFlow. Она предоставляет низкоуровневые API для загрузки и запуска TF SavedModels в средах C++. Среда выполнения TensorFlow обеспечивает лучшую производительность по сравнению со стандартной средой выполнения 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 поддерживает режимы Экспорта, Предсказания и Валидации. Экспортируй модель, а затем загрузи ее для запуска инференса или проверки точности.
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 | Указывает версию ONNX opset для промежуточного графа ONNX. Если не задано, используется последняя поддерживаемая версия. |
nms | bool | False | Добавляет подавление немаксимумов (NMS), что необходимо для точной и эффективной постобработки обнаружений. |
batch | int | 1 | Указывает размер пакета для пакетного инференса экспортированной модели или максимальное количество изображений, которые экспортированная модель будет обрабатывать одновременно в режиме predict. |
data | str | None | Путь к YAML датасета, необходимый для квантования; для классификации вместо этого указывается каталог датасета или встроенное имя датасета. Если не указано с quantize=8, Ultralytics выбирает датасет калибровки по умолчанию для задачи модели. |
fraction | float, int или list | 1.0 | Калибровочное подмножество в виде соотношения, количества изображений или [train, val] соотношений/количеств; список ограничивает train или val, в то время как test остается полным. |
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 в своих проектах.
FAQ#
Экспорт модели 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, для масштабируемого развертывания моделей.
- Мобильные и встраиваемые устройства: Использование LiteRT (ранее TensorFlow Lite) для конвертации TF SavedModels позволяет развертывать модели на мобильных устройствах, устройствах IoT и микроконтроллерах.
- TensorFlow Runtime: Для сред C++, где требуется инференс с низкой задержкой и повышенной производительностью.
Подробные варианты развертывания см. в официальных руководствах по развертыванию моделей TensorFlow.
Для экспорта моделей YOLO26 необходимо установить пакет
ultralytics. Выполни следующую команду в своем терминале:pip install ultralyticsБолее подробные инструкции по установке и лучшие практики ты найдешь в нашем руководстве по установке Ultralytics. Если у тебя возникнут какие-либо проблемы, обратись к нашему руководству по частым проблемам.
Формат TF SavedModel полезен для AI-разработчиков благодаря следующим особенностям:
- Портативность: Позволяет без усилий делиться моделями и развертывать их в различных средах.
- Простота развертывания: Инкапсулирует вычислительный граф, обученные параметры и метаданные в единый пакет, что упрощает загрузку и инференс.
- Управление ресурсами: Поддерживает внешние ресурсы, такие как словари, обеспечивая их доступность при загрузке модели.
Дополнительные сведения можно найти в официальной документации TensorFlow.