Узнай, как экспортировать модели в формат TF SavedModel из YOLO26
Развертывание машинного обучения моделей может быть непростой задачей. Однако использование эффективного и гибкого формата модели может облегчить твою работу. TF SavedModel — это фреймворк машинного обучения с открытым исходным кодом, используемый TensorFlow для загрузки моделей машинного обучения согласованным способом. Это как чемодан для моделей TensorFlow, который позволяет легко переносить и использовать их на различных устройствах и в разных системах.
Изучение процесса экспорта моделей Ultralytics YOLO26 в формат TF SavedModel поможет тебе легко развертывать модели на различных платформах и в разных средах. В этом руководстве мы разберем, как конвертировать твои модели в формат TF SavedModel, упрощая процесс запуска инференса с твоими моделями на различных устройствах.
Почему тебе стоит экспортировать в TF SavedModel?
Формат TensorFlow SavedModel является частью экосистемы TensorFlow, разработанной Google, как показано ниже. Он создан для беспрепятственного сохранения и сериализации моделей TensorFlow. Он инкапсулирует полные сведения о моделях, такие как архитектура, веса и даже информация о компиляции. Это делает процесс обмена, развертывания и продолжения обучения в различных средах простым и понятным.
TF SavedModel обладает ключевым преимуществом: совместимостью. Он отлично работает с TensorFlow Serving, 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. Эти сервисы предоставляют масштабируемую управляемую инфраструктуру, позволяя тебе легко развертывать и масштабировать свои модели.
-
Мобильные и встроенные устройства: TensorFlow Lite, легкое решение для запуска моделей машинного обучения на мобильных, встроенных и IoT-устройствах, поддерживает конвертацию TF SavedModel в формат TensorFlow Lite. Это позволяет тебе развертывать свои модели на широком спектре устройств, от смартфонов и планшетов до микроконтроллеров и периферийных устройств.
-
TensorFlow Runtime: TensorFlow Runtime (
tfrt) — это высокопроизводительная среда выполнения для исполнения графов TensorFlow. Она предоставляет низкоуровневые API для загрузки и запуска TF SavedModel в средах C++. TensorFlow Runtime предлагает более высокую производительность по сравнению со стандартной средой выполнения TensorFlow. Она подходит для сценариев развертывания, требующих инференса с низкой задержкой и тесной интеграции с существующими кодовыми базами на C++.
Экспорт моделей YOLO26 в TF SavedModel
Экспортируя модели YOLO26 в формат TF SavedModel, ты повышаешь их адаптивность и упрощаешь развертывание на различных платформах.
Установка
Чтобы установить необходимый пакет, выполни:
# Install the required package for YOLO26
pip install ultralyticsДля получения подробных инструкций и рекомендаций по процессу установки ознакомься с нашим руководством по установке Ultralytics. Если при установке необходимых пакетов для YOLO26 у тебя возникнут трудности, обратись к нашему руководству по распространенным проблемам за решениями и советами.
Использование
Все модели Ultralytics YOLO26 разработаны с поддержкой экспорта «из коробки», что упрощает их интеграцию в предпочитаемый тобой рабочий процесс развертывания. Ты можешь ознакомиться с полным списком поддерживаемых форматов экспорта и параметров конфигурации, чтобы выбрать оптимальные настройки для своего приложения.
from ultralytics import YOLO
# Load the 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 model
tf_savedmodel_model = YOLO("./yolo26n_saved_model")
# Run inference
results = tf_savedmodel_model("https://ultralytics.com/images/bus.jpg")Аргументы экспорта
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
format | str | 'saved_model' | Целевой формат для экспортируемой модели, определяющий совместимость с различными средами развертывания. |
imgsz | int или tuple | 640 | Желаемый размер изображения для входных данных модели. Может быть целым числом для квадратных изображений или кортежем (height, width) для указания конкретных размеров. |
keras | bool | False | Включает экспорт в формат Keras, обеспечивая совместимость с TensorFlow Serving и API. |
int8 | bool | False | Активирует квантование INT8, дополнительно сжимая модель и ускоряя логический вывод с минимальной потерей точности, в основном для периферийных устройств. |
nms | bool | False | Добавляет подавление немаксимумов (NMS), необходимое для точной и эффективной постобработки обнаружений. |
batch | int | 1 | Указывает размер пакетного инференса для экспортированной модели или максимальное количество изображений, которые модель будет обрабатывать одновременно в режиме predict. |
data | str | 'coco8.yaml' | Путь к файлу конфигурации dataset (по умолчанию: coco8.yaml), необходимому для квантования. |
fraction | float | 1.0 | Задает долю набора данных для использования при калибровке квантования INT8. Позволяет выполнять калибровку на подмножестве полного набора данных, что полезно для экспериментов или при ограниченных ресурсах. Если не указано при включенном INT8, будет использован полный набор данных. |
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?
Экспорт модели Ultralytics YOLO в формат TensorFlow SavedModel прост. Ты можешь использовать для этого Python или CLI:
from ultralytics import YOLO
# Load the 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 SavedModel предлагает несколько преимуществ для развертывания моделей:
- Портативность: Обеспечивает нейтральный к языку формат, облегчая совместное использование и развертывание моделей в различных средах.
- Совместимость: Легко интегрируется с такими инструментами, как TensorFlow Serving, TensorFlow Lite и TensorFlow.js, которые необходимы для развертывания моделей на различных платформах, включая веб-приложения и мобильные устройства.
- Полная инкапсуляция: Кодирует архитектуру модели, веса и информацию о компиляции, что позволяет легко обмениваться ими и продолжать обучение.
Для получения дополнительных преимуществ и вариантов развертывания ознакомься с вариантами развертывания моделей Ultralytics YOLO.
Каковы типичные сценарии развертывания для TF SavedModel?
TF SavedModel может быть развернут в различных средах, включая:
- TensorFlow Serving: Идеально подходит для промышленных сред, требующих масштабируемого и высокопроизводительного обслуживания моделей.
- Облачные платформы: Поддерживает основные облачные сервисы, такие как Google Cloud Platform (GCP), Amazon Web Services (AWS) и Microsoft Azure, для масштабируемого развертывания моделей.
- Мобильные и встроенные устройства: Использование TensorFlow Lite для конвертации TF SavedModel позволяет осуществлять развертывание на мобильных устройствах, IoT-устройствах и микроконтроллерах.
- TensorFlow Runtime: Для сред C++, нуждающихся в инференсе с низкой задержкой и более высокой производительностью.
Для получения подробной информации о вариантах развертывания посети официальные руководства по развертыванию моделей TensorFlow.
Как установить необходимые пакеты для экспорта моделей YOLO26?
Для экспорта моделей YOLO26 тебе нужно установить пакет ultralytics. Запусти следующую команду в своем терминале:
pip install ultralyticsДля получения более подробных инструкций по установке и рекомендаций обратись к нашему руководству по установке Ultralytics. Если ты столкнешься с какими-либо проблемами, изучи наше руководство по общим вопросам.
Каковы ключевые особенности формата TensorFlow SavedModel?
Формат TF SavedModel полезен для AI-разработчиков благодаря следующим функциям:
- Портативность: Позволяет легко обмениваться моделями и развертывать их в различных средах.
- Простота развертывания: Инкапсулирует вычислительный граф, обученные параметры и метаданные в один пакет, что упрощает загрузку и инференс.
- Управление ресурсами: Поддерживает внешние ресурсы, такие как словари, гарантируя, что они будут доступны при загрузке модели.
Для получения дополнительных сведений изучи официальную документацию TensorFlow.