Экспорт в формат модели 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 у тебя возникнут какие-либо трудности, обратись к нашему руководству по частым проблемам за решениями и советами.
Использование#
Все модели 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 | 1.0 | Указывает часть датасета, которую нужно использовать для калибровки квантования INT8. Позволяет выполнять калибровку на подмножестве полного датасета, что полезно для экспериментов или при ограниченных ресурсах. Если не указано при включенном INT8, будет использован весь датасет. |
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 в своих проектах.
FAQ#
Экспорт моделей 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 для расширенных операций.
- Автономные возможности: Модели могут работать непосредственно в браузере без интернет-соединения, что делает его идеальным для разработки отзывчивых веб-приложений.
Информацию о сценариях развертывания и более подробные сведения см. в нашем разделе Варианты развертывания с помощью TensorFlow.js.
Да, TensorFlow.js позволяет развертывать модели YOLO26 в средах Node.js. Это открывает возможности для серверных приложений машинного обучения, которые выигрывают от вычислительной мощности сервера и доступа к серверным данным. Типичные сценарии использования включают обработку данных в реальном времени и конвейеры машинного обучения на бэкенд-серверах.
Чтобы начать работу с развертыванием в Node.js, обратись к руководству Запуск TensorFlow.js в Node.js от команды TensorFlow.