Экспорт в формат модели TF.js из формата модели YOLO26#
Начиная с Ultralytics 8.4.83, формат экспорта tfjs (TensorFlow.js) был удалён и заменён унифицированным форматом Google LiteRT. LiteRT работает в браузере через LiteRT.js (с ускорением WebGPU), охватывая сценарии использования в браузере и Node.js, которые поддерживал TF.js, а также мобильные, встраиваемые и периферийные сценарии с помощью единой модели .tflite.
format="tfjs" по-прежнему работает, но выводит предупреждение об устаревании и вместо этого экспортирует модель LiteRT. В дальнейшем используй format="litert"; актуальные инструкции по экспорту и путь развёртывания в браузере см. в руководстве по экспорту LiteRT.
Развёртывание моделей машинного обучения непосредственно в браузере или Node.js может быть сложным. Нужно убедиться, что формат модели оптимизирован для более высокой производительности, чтобы модель можно было использовать для запуска интерактивных приложений локально на устройстве пользователя. Формат модели TensorFlow.js, или TF.js, предназначен для минимального энергопотребления при высокой скорости работы.
Функция «экспорт в формат модели TF.js» позволяет оптимизировать модели Ultralytics YOLO26 для высокоскоростного локального выполнения инференса обнаружения объектов. В этом руководстве мы покажем, как преобразовать модели в формат TF.js, чтобы они эффективнее работали в различных локальных браузерах и приложениях Node.js.
Зачем экспортировать модель в TF.js?#
Экспорт моделей машинного обучения в TensorFlow.js, разработанный командой TensorFlow как часть более широкой экосистемы TensorFlow, даёт множество преимуществ при развёртывании приложений машинного обучения. Он помогает повысить конфиденциальность и безопасность пользователей, сохраняя чувствительные данные на устройстве. На изображении ниже показана архитектура TensorFlow.js и процесс преобразования и развёртывания моделей машинного обучения в веб-браузерах и Node.js.
Локальный запуск моделей также снижает задержку и делает работу пользователя более отзывчивой. TensorFlow.js также поддерживает автономную работу, позволяя пользователям использовать приложение даже без подключения к интернету. TF.js предназначен для эффективного выполнения сложных моделей на устройствах с ограниченными ресурсами и спроектирован с учётом масштабируемости, включая поддержку ускорения GPU.
Ключевые возможности TF.js#
Ниже перечислены ключевые возможности, которые делают TF.js мощным инструментом для разработчиков:
-
Кроссплатформенная поддержка: TensorFlow.js можно использовать в браузерах и средах Node.js, что обеспечивает гибкость развёртывания на разных платформах. Это упрощает разработку и развёртывание приложений.
-
Поддержка нескольких бэкендов: TensorFlow.js поддерживает различные бэкенды для вычислений, включая CPU, WebGL для ускорения GPU, WebAssembly (WASM) для выполнения со скоростью, близкой к нативной, и WebGPU для расширенных возможностей машинного обучения в браузере.
-
Автономная работа: с TensorFlow.js модели могут выполняться в браузере без подключения к интернету, что позволяет разрабатывать приложения, полноценно работающие офлайн.
Варианты развёртывания с TensorFlow.js#
Прежде чем перейти к процессу экспорта моделей YOLO26 в формат TF.js, рассмотрим типичные сценарии развёртывания, в которых используется этот формат.
TF.js предоставляет ряд вариантов развёртывания моделей машинного обучения:
-
ML-приложения в браузере: можно создавать веб-приложения, которые запускают модели машинного обучения непосредственно в браузере. Это устраняет необходимость в вычислениях на стороне сервера и снижает нагрузку на сервер.
-
Приложения Node.js: TensorFlow.js также поддерживает развёртывание в средах Node.js, позволяя разрабатывать серверные приложения машинного обучения. Это особенно полезно для приложений, которым нужны вычислительные ресурсы сервера или доступ к данным на стороне сервера.
-
Расширения Chrome: ещё один интересный сценарий развёртывания — создание расширений Chrome с TensorFlow.js. Например, можно разработать расширение, позволяющее пользователям щёлкнуть правой кнопкой мыши по изображению на любой веб-странице и классифицировать его с помощью предварительно обученной ML-модели. TensorFlow.js можно интегрировать в повседневный веб-сёрфинг, чтобы получать мгновенную информацию или дополнения на основе машинного обучения.
Экспорт моделей YOLO26 в TensorFlow.js#
Преобразовав модели YOLO26 в TF.js, ты можешь расширить их совместимость и гибкость развёртывания.
Установка#
Чтобы установить необходимый пакет, выполни:
# Install the required package for YOLO26
pip install ultralyticsПодробные инструкции и рекомендации по установке смотри в нашем руководстве по установке Ultralytics. Если при установке необходимых для YOLO26 пакетов возникнут трудности, обратись к руководству по распространенным проблемам, где encontrarás решения и советы.
Использование#
Все модели Ultralytics YOLO26 изначально поддерживают экспорт, поэтому их легко интегрировать в предпочитаемый тобой рабочий процесс развёртывания. Ты можешь просмотреть полный список поддерживаемых форматов экспорта и параметров конфигурации, чтобы выбрать оптимальную настройку для своего приложения.
Аргумент tfjs теперь экспортирует модель LiteRT .tflite, которая поддерживает режимы Export, Predict и Validate локально и работает в браузере через LiteRT.js. Актуальный путь развёртывания в браузере и на устройстве см. в руководстве по экспорту LiteRT.
from ultralytics import YOLO
# Load a YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to TF.js format
model.export(format="litert", imgsz=640) # use imgsz=224 for classificationЭкспортированная модель LiteRT .tflite напрямую загружается с помощью yolo predict и yolo val и работает в браузере через LiteRT.js. См. руководство по экспорту LiteRT.
Аргументы экспорта#
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
format | str | 'tfjs' | Целевой формат экспортированной модели, определяющий совместимость с различными средами развёртывания. |
imgsz | int или tuple | 640 | Требуемый размер изображения для входных данных модели. Может быть целым числом для квадратных изображений или кортежем (height, width) для указания конкретных размеров. |
quantize | int или str | None | Точность квантования: 8 (статический INT8, веса int8 + активации int8; требуется калибровка data/fraction), 'w8a16' (статический, веса int8 + активации int16; требуется калибровка data/fraction), 'w8a32' (динамический INT8, веса int8 + активации FP32; калибровка не требуется) или 32/не задано (FP32). FP16 не экспортируется отдельно — модель FP32 автоматически выполняется в FP16 на делегатах GPU. Заменяет устаревшие флаги half/int8. |
batch | int | 1 | Задаёт размер пакета при инференсе экспортированной модели или максимальное количество изображений, которые экспортированная модель будет обрабатывать одновременно в режиме predict. |
data | str | None | Путь к YAML-файлу датасета, необходимому для квантования; для классификации вместо него указывается каталог датасета или имя встроенного датасета. Если параметр не задан вместе с quantize=8 или 'w8a16', 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 TensorFlow.js#
После экспорта модели YOLO26 следующий шаг — её развёртывание. В результате экспорта создаётся модель LiteRT .tflite, которая работает на устройстве и в браузере через LiteRT.js. Актуальный способ см. в руководстве по экспорту LiteRT.
Для справки ниже приведены ресурсы среды выполнения устаревшего TensorFlow.js:
-
Расширение Chrome: документация для разработчиков о развёртывании моделей TF.js в расширении Chrome.
-
Запуск TensorFlow.js в Node.js: публикация в блоге TensorFlow о непосредственном запуске TensorFlow.js в Node.js.
-
Развёртывание TensorFlow.js — проекта Node в облачной платформе: публикация в блоге TensorFlow о развёртывании модели TensorFlow.js в облачной платформе.
Итоги#
В этом руководстве мы узнали, как экспортировать модели Ultralytics YOLO26 в формат TensorFlow.js. Экспорт в TF.js позволяет гибко оптимизировать, развёртывать и масштабировать модели YOLO26 на широком спектре платформ.
Дополнительные сведения об использовании см. в официальной документации TensorFlow.js.
Дополнительную информацию об интеграции Ultralytics YOLO26 с другими платформами и фреймворками см. на нашей странице руководства по интеграциям. Здесь собраны полезные ресурсы, которые помогут максимально эффективно использовать YOLO26 в твоих проектах.
Часто задаваемые вопросы#
Экспорт моделей Ultralytics YOLO26 в формат TensorFlow.js (TF.js) выполняется просто. Следуй этим шагам:
Использованиеfrom ultralytics import YOLO # Load a YOLO26 model model = YOLO("yolo26n.pt") # Export the model to TF.js format model.export(format="litert", imgsz=640) # use imgsz=224 for classification # The exported '.tflite' model runs in the browser via LiteRT.js or locally with yolo predict/val.Дополнительные сведения о поддерживаемых вариантах экспорта см. на странице документации Ultralytics о вариантах развёртывания.
Экспорт моделей YOLO26 в TensorFlow.js даёт несколько преимуществ, включая:
- Локальное выполнение: модели могут запускаться непосредственно в браузере или Node.js, снижая задержку и повышая удобство работы пользователей.
- Кроссплатформенная поддержка: TF.js поддерживает несколько сред, обеспечивая гибкость развёртывания.
- Автономная работа: приложения могут работать без подключения к интернету, что повышает надёжность и конфиденциальность.
- Ускорение GPU: использует WebGL для ускорения GPU и повышает производительность на устройствах с ограниченными ресурсами.
TensorFlow.js специально разработан для эффективного выполнения ML-моделей в браузерах и средах Node.js. Вот как он помогает приложениям в браузере:
- Снижает задержку: запускает модели машинного обучения локально и обеспечивает немедленные результаты без зависимости от вычислений на стороне сервера.
- Повышает конфиденциальность: сохраняет чувствительные данные на устройстве пользователя, сводя к минимуму риски безопасности.
- Поддерживает автономную работу: модели могут работать без подключения к интернету, обеспечивая стабильную функциональность.
- Поддерживает несколько бэкендов: обеспечивает гибкость благодаря таким бэкендам, как CPU, WebGL, WebAssembly (WASM) и WebGPU, для разных вычислительных задач.
Хочешь узнать больше о TF.js? Ознакомься с официальным руководством TensorFlow.js.
Ключевые возможности TensorFlow.js включают:
- Кроссплатформенная поддержка: TF.js можно использовать в веб-браузерах и Node.js, что обеспечивает широкие возможности развёртывания.
- Несколько бэкендов: поддерживаются CPU, WebGL для ускорения GPU, WebAssembly (WASM) и WebGPU для выполнения расширенных операций.
- Автономная работа: модели могут запускаться непосредственно в браузере без подключения к интернету, что делает TF.js подходящим для разработки отзывчивых веб-приложений.
Сценарии развёртывания и более подробную информацию см. в разделе «Варианты развёртывания с TensorFlow.js».
Да, TensorFlow.js позволяет развёртывать модели YOLO26 в средах Node.js. Это обеспечивает работу серверных приложений машинного обучения, использующих вычислительные ресурсы сервера и доступ к данным на стороне сервера. Типичные сценарии включают обработку данных в реальном времени и конвейеры машинного обучения на бэкенд-серверах.
Чтобы начать развёртывание в Node.js, обратись к руководству TensorFlow «Запуск TensorFlow.js в Node.js».