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

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

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

Вот ключевые возможности, делающие 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 — единственном семействе, поставляемом с такими головами.
| Задача | YOLOv8 | YOLO11 | YOLO26 |
|---|---|---|---|
| Детекция | ✅ | ✅ | ✅ |
| Сегментация | ✅ | ✅ | ✅ |
| Семантическая сегментация | ❌ | ❌ | ✅ |
| Оценка глубины | ❌ | ❌ | ✅ |
| Классификация | ✅ | ✅ | ✅ |
| Поза | ✅ | ✅ | ✅ |
| OBB | ✅ | ✅ | ✅ |
Экспорт в 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'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")Аргументы экспорта#
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
format | str | 'torchscript' | Целевой формат экспортированной модели, определяющий совместимость с различными средами развёртывания. |
imgsz | int или tuple | 640 | Требуемый размер изображения для входных данных модели. Может быть целым числом для квадратных изображений или кортежем (height, width) для указания конкретных размеров. |
dynamic | bool | False | Разрешает динамические размеры входных данных, повышая гибкость при работе с изображениями разных размеров. |
quantize | int или str | None | Точность квантования: 16 (FP16) требует экспорта на GPU с помощью device=0; 32/не задано — это FP32. Заменяет устаревший флаг half. |
nms | bool, необязательно | None | Выбери необработанный вывод (None, по умолчанию), встроенный NMS (True) или голову без NMS (False). |
batch | int | 1 | Задаёт размер пакета при инференсе экспортированной модели или максимальное количество изображений, которые экспортированная модель будет обрабатывать одновременно в режиме predict. |
device | str | None | Указывает устройство для экспорта: 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.