Ultralytics YOLO27: Запишись в список ожидания.
Get Started

Экспорт модели YOLO26 в формат TF.js (устарело)#

Устарело — заменено на LiteRT

По состоянию на 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?#

Экспорт моделей машинного обучения в TensorFlow.js, разработанный командой TensorFlow в рамках более широкой экосистемы TensorFlow, дает множество преимуществ при развертывании приложений машинного обучения. Это повышает конфиденциальность и безопасность пользователей, поскольку конфиденциальные данные остаются на устройстве. На изображении ниже показана архитектура TensorFlow.js и то, как модели машинного обучения преобразуются и развертываются в веб-браузерах и Node.js.

TensorFlow.js browser ML inference architecture

Локальный запуск моделей также снижает задержку и делает взаимодействие с приложением более отзывчивым. 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#

TF.js предлагает различные варианты развертывания моделей машинного обучения:

  • Веб-приложения с машинным обучением: можно создавать веб-приложения, в которых модели машинного обучения запускаются непосредственно в браузере. Это устраняет необходимость в вычислениях на стороне сервера и снижает нагрузку на него.

  • Приложения Node.js: TensorFlow.js также поддерживает развертывание в средах Node.js, позволяя разрабатывать серверные приложения машинного обучения. Это особенно полезно для приложений, которым нужны вычислительные ресурсы сервера или доступ к серверным данным.

  • Расширения Chrome: один из интересных сценариев развертывания — создание расширений Chrome с TensorFlow.js. Например, можно разработать расширение, которое позволяет пользователям щелкнуть правой кнопкой мыши по изображению на любой веб-странице и классифицировать его с помощью предварительно обученной модели машинного обучения. TensorFlow.js можно встроить в повседневный веб-серфинг, чтобы сразу получать полезные результаты или улучшения на основе машинного обучения.

Замени экспорт TF.js на LiteRT#

Для нового экспорта преобразуй модель в LiteRT.

Установка#

Чтобы установить необходимый пакет, выполни команду:

Установка
# Install the required package for YOLO26
pip install ultralytics

Подробные инструкции и рекомендации по установке смотри в руководстве по установке Ultralytics. Если при установке пакетов, необходимых для YOLO26, возникнут сложности, решения и советы найдешь в руководстве по распространенным проблемам.

Использование#

Все модели Ultralytics YOLO26 изначально поддерживают экспорт, поэтому их легко интегрировать в предпочтительный процесс развёртывания. Чтобы выбрать оптимальную конфигурацию для своего приложения, посмотри полный список поддерживаемых форматов экспорта и параметров конфигурации.

Аргумент tfjs теперь экспортирует модель .tflite в формате LiteRT, которая поддерживает режимы экспорта, предсказания и валидации локально и работает в браузере через LiteRT.js.

Экспорт
from ultralytics import YOLO

# Загрузи модель YOLO26
model = YOLO("yolo26n.pt")

# Экспортируй модель в формат LiteRT (заменяет TF.js)
model.export(format="litert", imgsz=640)  # используй imgsz=224 для классификации
Предсказание и проверка

Экспортированная модель LiteRT .tflite напрямую загружается с помощью yolo predict и yolo val, а также работает в браузере через LiteRT.js.

Аргументы экспорта#

Смотри аргументы экспорта LiteRT. Подробнее о процессе экспорта читай на странице документации Ultralytics об экспорте.

Развертывание экспортированных моделей YOLO26 TensorFlow.js#

Теперь, когда ты экспортировал модель YOLO26, следующий шаг — развернуть ее. В результате экспорта создается модель .tflite формата LiteRT, которая работает на устройстве и в браузере через LiteRT.js.

Для справки ниже приведены ресурсы по устаревшей среде выполнения TensorFlow.js:

Итоги#

Это руководство описывает устаревший сценарий развертывания TF.js. Для новых экспортов используй LiteRT.

Подробнее об использовании см. в официальной документации TensorFlow.js.

Часто задаваемые вопросы#

  • Вместо этого выполни экспорт в LiteRT. format="tfjs" по-прежнему работает, но выводит предупреждение об устаревании и экспортирует ту же модель LiteRT:

    Использование
    from ultralytics import YOLO
    
    # Загрузи модель YOLO26
    model = YOLO("yolo26n.pt")
    
    # Экспортируй модель в формат LiteRT (заменяет TF.js)
    model.export(format="litert", imgsz=640)  # используй imgsz=224 для классификации
    
    # Экспортированная модель '.tflite' работает в браузере через LiteRT.js или локально с помощью yolo predict/val.

    Подробнее о поддерживаемых вариантах экспорта см. на странице документации Ultralytics о вариантах развертывания.

  • TensorFlow.js специально разработан для эффективного выполнения моделей машинного обучения в браузерах и средах Node.js. Вот чем он полезен для браузерных приложений:

    • Снижает задержку: запускает модели машинного обучения локально и сразу предоставляет результаты без вычислений на стороне сервера.
    • Повышает конфиденциальность: оставляет конфиденциальные данные на устройстве пользователя, снижая риски для безопасности.
    • Обеспечивает автономную работу: модели работают без подключения к интернету, гарантируя стабильное функционирование.
    • Поддерживает несколько бэкендов: предлагает гибкий выбор бэкендов для разных вычислительных задач, включая CPU, WebGL, WebAssembly (WASM) и WebGPU.

    Хочешь узнать больше о TF.js? Загляни в официальное руководство TensorFlow.js.

Комментарии