Экспорт модели 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 — возможность ускорить выполнение модели на различных аппаратных платформах. В результате создается автономное представление модели PyTorch, готовое к использованию в production и интеграции в среды 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 — это C++ API LibTorch, позволяющий загружать и выполнять оптимизированные модели 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, возникнут сложности, решения и советы найдешь в руководстве по распространенным проблемам.
Использование#
Все модели Ultralytics YOLO26 изначально поддерживают экспорт, поэтому их легко интегрировать в предпочтительный процесс развёртывания. Чтобы выбрать оптимальную конфигурацию для своего приложения, посмотри полный список поддерживаемых форматов экспорта и параметров конфигурации.
Формат TorchScript поддерживает режимы экспорта, предсказания и валидации. Экспортируй модель, а затем загрузи экспортированную модель, чтобы запустить инференс или проверить точность.
from ultralytics import YOLO
# Загрузи модель YOLO26
model = YOLO("yolo26n.pt")
# Экспорт модели в формат TorchScript
model.export(format="torchscript") # создает 'yolo26n.torchscript'from ultralytics import YOLO
# Загрузка экспортированной модели TorchScript
model = YOLO("yolo26n.torchscript")
# Выполнить инференс
results = model("https://ultralytics.com/images/bus.jpg")from ultralytics import YOLO
# Загрузка экспортированной модели TorchScript
model = YOLO("yolo26n.torchscript")
# Проверить точность на наборе данных COCO8
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 в других средах смотри в следующих материалах:
-
Изучи развертывание на мобильных устройствах: используй отдельный конвейер
torch.export()→.pteв ExecuTorch для актуального развертывания PyTorch на мобильных устройствах. -
Освой развертывание на сервере: узнай, как развертывать модели на сервере с помощью TorchServe — в пошаговом руководстве по масштабируемому и эффективному обслуживанию моделей.
-
Настрой развертывание на C++: изучи руководство по загрузке модели TorchScript в C++, чтобы интегрировать модели TorchScript в приложения C++ и повысить производительность и гибкость.
Итоги#
В этом руководстве мы рассмотрели процесс экспорта моделей Ultralytics YOLO26 в формат TorchScript. Следуя приведенным инструкциям, ты сможешь оптимизировать модели YOLO26 для повышения производительности и гибко развертывать их на различных платформах и в разных средах.
Дополнительную информацию об использовании смотри в официальной документации TorchScript.
Если хочешь узнать больше о других вариантах интеграции Ultralytics YOLO26, посети нашу страницу руководства по интеграциям. Там ты найдешь множество полезных материалов и рекомендаций.
Часто задаваемые вопросы#
Экспорт модели Ultralytics YOLO26 в TorchScript обеспечивает гибкое кроссплатформенное развертывание. TorchScript, часть экосистемы PyTorch, позволяет сериализовать модели, которые затем можно выполнять в средах без поддержки Python. Это делает TorchScript полезным для развертывания моделей в средах C++.
Чтобы экспортировать модель YOLO26 в TorchScript, используй следующий пример кода:
Использованиеfrom ultralytics import YOLO # Загрузи модель YOLO26 model = YOLO("yolo26n.pt") # Экспорт модели в формат TorchScript model.export(format="torchscript") # создает 'yolo26n.torchscript' # Загрузка экспортированной модели TorchScript torchscript_model = YOLO("yolo26n.torchscript") # Выполнить инференс 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 ты можешь развернуть их на самых разных платформах:
- API C++: используй LibTorch для производственных сред с низкими накладными расходами и высокой эффективностью.
- Развертывание на мобильных устройствах: используй ExecuTorch — поддерживаемую PyTorch замену с отдельным конвейером экспорта
.pte. - Развертывание в облаке: используй такие сервисы, как TorchServe, для масштабируемого развертывания на стороне сервера.
Изучи подробные рекомендации по развертыванию моделей в этих средах, чтобы в полной мере использовать возможности TorchScript.