Ultralytics YOLO27:

Экспорт модели YOLO26 в TorchScript для быстрого развёртывания#

PyTorch прекращает поддержку TorchScript

PyTorch объявил TorchScript устаревшим и постепенно удаляет его функции. Для новых мобильных и периферийных развёртываний используй поддерживаемую интеграцию ExecuTorch. Ultralytics сохраняет обычный экспорт в TorchScript для совместимости с устаревшими приложениями на C++.

Для развёртывания моделей компьютерного зрения в средах C++ без Python требуется переносимое сериализованное представление. TorchScript обеспечивает такую совместимость для устаревших приложений LibTorch.

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

Зачем экспортировать модель в TorchScript?#

Обзор рабочего процесса сериализации и развёртывания модели TorchScript

TorchScript, разработанный создателями PyTorch, — мощный инструмент для оптимизации и развёртывания моделей PyTorch на различных платформах. Экспорт моделей YOLO26 в TorchScript имеет ключевое значение при переходе от исследований к реальным приложениям. TorchScript, являющийся частью фреймворка PyTorch, упрощает этот переход, позволяя использовать модели PyTorch в средах без поддержки Python.

Процесс включает два метода: трассировку и написание скрипта. Трассировка записывает операции во время выполнения модели, а написание скрипта позволяет определять модели с использованием подмножества Python. Эти методы позволяют моделям, таким как YOLO26, эффективно работать даже за пределами привычной среды Python.

Сравнение написания скрипта и трассировки в TorchScript

Модели TorchScript также можно оптимизировать с помощью таких методов, как объединение операторов и оптимизация использования памяти, обеспечивая эффективное выполнение. Ещё одно преимущество экспорта в TorchScript — возможность ускорить выполнение модели на различных аппаратных платформах. При этом создаётся автономное, готовое к использованию в production представление модели PyTorch, которое можно интегрировать в среды C++.

Ключевые возможности моделей TorchScript#

TorchScript, важная часть экосистемы PyTorch, предоставляет мощные возможности для оптимизации и развёртывания моделей глубокого обучения.

Обзор ключевых возможностей TorchScript

Вот ключевые возможности, делающие TorchScript ценным инструментом для разработчиков:

  • Выполнение статического графа: TorchScript использует статическое представление вычислений модели, отличающееся от динамического выполнения графа в PyTorch. При выполнении статического графа вычислительный граф определяется и компилируется до фактического запуска, что повышает производительность во время инференса.

  • Сериализация модели: TorchScript позволяет сериализовать модели PyTorch в независимый от платформы формат. Сериализованные модели можно загружать без исходного кода Python, что обеспечивает развёртывание в различных средах выполнения.

  • JIT-компиляция: TorchScript использует компиляцию «точно в срок» (JIT) для преобразования моделей PyTorch в оптимизированное промежуточное представление. JIT компилирует вычислительный граф модели, обеспечивая эффективное выполнение на целевых устройствах.

  • Постепенное преобразование: TorchScript поддерживает постепенный подход к преобразованию, позволяя поэтапно переводить части модели PyTorch в TorchScript. Такая гибкость особенно полезна при работе со сложными моделями или оптимизации отдельных участков кода.

Варианты развёртывания в TorchScript#

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

TorchScript предлагает различные варианты развёртывания моделей машинного обучения, например:

  • C++ API: наиболее распространённый сценарий использования TorchScript — это его LibTorch C++ API, который позволяет загружать и выполнять оптимизированные модели TorchScript непосредственно в приложениях C++. Это идеально подходит для production-сред, где Python может быть непригоден или недоступен. C++ API обеспечивает выполнение моделей TorchScript с низкими накладными расходами и высокой эффективностью, максимально раскрывая их производительность.

  • Мобильное развёртывание: для инференса с низкой задержкой и без подключения к сети, а также обеспечения конфиденциальности данных на мобильных устройствах используй ExecuTorch — замену TorchScript Mobile от PyTorch.

  • Облачное развёртывание: модели TorchScript можно развёртывать на облачных серверах с помощью таких решений, как TorchServe. Он предоставляет функции управления версиями моделей, пакетной обработки и мониторинга метрик для масштабируемого развёртывания в production-средах. Облачное развёртывание с TorchScript позволяет сделать модели доступными через API или другие веб-сервисы.

Поддерживаемые задачи#

Экспорт в TorchScript поддерживает все семь задач Ultralytics. Семантическая сегментация и оценка глубины доступны только в YOLO26 — единственном семействе, поставляемом с такими головами.

Экспорт в TorchScript: преобразование модели YOLO26#

Экспорт моделей YOLO26 в TorchScript упрощает их использование в разных средах и помогает им работать быстрее и эффективнее. Это особенно полезно тем, кто хочет эффективнее применять модели глубокого обучения в реальных приложениях.

Установка#

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

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

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

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

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

Формат TorchScript поддерживает режимы Export, Predict и Validate. Экспортируй модель, затем загрузи экспортированную модель для выполнения инференса или проверки её точности.

Экспорт
from ultralytics import YOLO

# Load a YOLO26 model
model = YOLO("yolo26n.pt")

# Export the model to TorchScript format
model.export(format="torchscript")  # creates 'yolo26n.torchscript'
Predict
from ultralytics import YOLO

# Load the exported TorchScript model
model = YOLO("yolo26n.torchscript")

# Run inference
results = model("https://ultralytics.com/images/bus.jpg")
Валидация
from ultralytics import YOLO

# Load the exported TorchScript model
model = YOLO("yolo26n.torchscript")

# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")

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

АргументТипПо умолчаниюОписание
formatstr'torchscript'Целевой формат экспортированной модели, определяющий совместимость с различными средами развёртывания.
imgszint или tuple640Требуемый размер изображения для входных данных модели. Может быть целым числом для квадратных изображений или кортежем (height, width) для указания конкретных размеров.
dynamicboolFalseРазрешает динамические размеры входных данных, повышая гибкость при работе с изображениями разных размеров.
quantizeint или strNoneТочность квантования: 16 (FP16) требует экспорта на GPU с помощью device=0; 32/не задано — это FP32. Заменяет устаревший флаг half.
nmsbool, необязательноNoneВыбери необработанный вывод (None, по умолчанию), встроенный NMS (True) или голову без NMS (False).
batchint1Задаёт размер пакета при инференсе экспортированной модели или максимальное количество изображений, которые экспортированная модель будет обрабатывать одновременно в режиме predict.
devicestrNoneУказывает устройство для экспорта: GPU (device=0), CPU (device=cpu), MPS для Apple silicon (device=mps).

Подробнее о процессе экспорта см. на странице документации Ultralytics об экспорте.

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

После успешного экспорта моделей Ultralytics YOLO26 в формат TorchScript ты можешь развернуть их. Основной и рекомендуемый первый шаг для запуска модели TorchScript — использовать метод YOLO("model.torchscript"), как показано в предыдущем фрагменте кода. Подробные инструкции по развёртыванию моделей TorchScript в других средах смотри в следующих ресурсах:

  • Изучи мобильное развёртывание: для текущего мобильного развёртывания PyTorch используй отдельный конвейер ExecuTorch torch.export().pte.

  • Освой серверное развёртывание: узнай, как развёртывать модели на сервере с помощью TorchServe, следуя пошаговому руководству по масштабируемой и эффективной подаче моделей.

  • Реализуй развёртывание на C++: изучи руководство по загрузке модели TorchScript в C++, которое поможет интегрировать модели TorchScript в приложения C++ для повышения производительности и универсальности.

Итоги#

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

Дополнительные сведения об использовании смотри в официальной документации TorchScript.

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

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

  • Экспорт модели Ultralytics YOLO26 в TorchScript обеспечивает гибкое кроссплатформенное развёртывание. TorchScript, являющийся частью экосистемы PyTorch, упрощает сериализацию моделей, которые затем можно выполнять в средах без поддержки Python. Это делает его полезным для развёртывания моделей в средах C++.

  • Чтобы экспортировать модель YOLO26 в TorchScript, используй следующий пример кода:

    Использование
    from ultralytics import YOLO
    
    # Load a YOLO26 model
    model = YOLO("yolo26n.pt")
    
    # Export the model to TorchScript format
    model.export(format="torchscript")  # creates 'yolo26n.torchscript'
    
    # Load the exported TorchScript model
    torchscript_model = YOLO("yolo26n.torchscript")
    
    # Run inference
    results = torchscript_model("https://ultralytics.com/images/bus.jpg")

    Дополнительные сведения о процессе экспорта смотри в документации Ultralytics по экспорту.

  • Использование TorchScript для развёртывания моделей YOLO26 даёт несколько преимуществ:

    • Переносимость: экспортированные модели могут работать в приложениях C++ без Python.
    • Оптимизация: TorchScript поддерживает выполнение статического графа и компиляцию «точно в срок» (JIT), что позволяет оптимизировать производительность модели.
    • Кроссъязычная интеграция: модели TorchScript можно интегрировать с другими языками программирования, повышая гибкость и расширяемость.
    • Сериализация: модели можно сериализовать, что позволяет загружать их и выполнять инференс независимо от платформы.

    Дополнительные сведения о развёртывании смотри в документации TorchServe и руководстве по развёртыванию на C++. Для мобильного развёртывания на устройстве PyTorch теперь рекомендует ExecuTorch, использующий собственный отдельный конвейер torch.export().pte вместо TorchScript.

  • Чтобы установить пакет, необходимый для экспорта моделей YOLO26, используй следующую команду:

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

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

  • После экспорта моделей YOLO26 в формат TorchScript ты можешь развернуть их на различных платформах:

    • C++ API: используй LibTorch в production-средах, где важны низкие накладные расходы и высокая эффективность.
    • Мобильное развёртывание: используй ExecuTorch — поддерживаемую замену от PyTorch с отдельным конвейером экспорта .pte.
    • Облачное развёртывание: используй такие сервисы, как TorchServe, для масштабируемого серверного развёртывания.

    Изучи подробные рекомендации по развёртыванию моделей в этих средах, чтобы в полной мере использовать возможности TorchScript.

Комментарии