Экспорт модели YOLO26 в TorchScript для быстрого развертывания#
PyTorch deprecated TorchScript and is gradually removing its features. For new mobile and edge deployments, use the supported ExecuTorch integration. Ultralytics retains regular TorchScript export for legacy C++ compatibility.
Deploying computer vision models in C++ environments without Python requires a portable serialized representation. TorchScript provides that compatibility for legacy LibTorch applications.
Export to TorchScript to serialize your Ultralytics YOLO26 models for cross-platform compatibility and streamlined deployment. In this guide, we'll show you how to export your YOLO26 models to the TorchScript format, making it easier for you to use them across a wider range of applications.
Зачем нужно выполнять экспорт в TorchScript?#

Developed by the creators of PyTorch, TorchScript is a powerful tool for optimizing and deploying PyTorch models across a variety of platforms. Exporting YOLO26 models to TorchScript is crucial for moving from research to real-world applications. TorchScript, part of the PyTorch framework, helps make this transition smoother by allowing PyTorch models to be used in environments that don't support Python.
Процесс включает в себя два метода: трассировку (tracing) и скриптинг (scripting). Трассировка записывает операции во время выполнения модели, в то время как скриптинг позволяет определять модели, используя подмножество Python. Эти методы гарантируют, что такие модели, как YOLO26, смогут работать даже вне привычной среды Python.

Модели TorchScript также могут быть оптимизированы с помощью таких методов, как объединение операторов и уточнение использования памяти, что обеспечивает эффективное выполнение. Еще одним преимуществом экспорта в TorchScript является потенциальное ускорение выполнения модели на различных аппаратных платформах. Он создает автономное, готовое к эксплуатации представление твоей модели PyTorch, которое можно интегрировать в среды C++.
Ключевые особенности моделей TorchScript#
TorchScript, a key part of the PyTorch ecosystem, provides powerful features for optimizing and deploying deep learning models.

Вот ключевые особенности, которые делают TorchScript ценным инструментом для разработчиков:
-
Выполнение статического графа: TorchScript использует представление вычислений модели в виде статического графа, что отличается от динамического выполнения графа в PyTorch. При выполнении статического графа вычислительный граф определяется и компилируется один раз перед фактическим запуском, что приводит к повышению производительности во время инференса.
-
Сериализация модели: TorchScript позволяет сериализовать модели PyTorch в независимый от платформы формат. Сериализованные модели можно загружать без необходимости в исходном коде Python, что позволяет развертывать их в различных средах выполнения.
-
JIT-компиляция: TorchScript использует JIT-компиляцию для преобразования моделей PyTorch в оптимизированное промежуточное представление. JIT компилирует вычислительный граф модели, обеспечивая эффективное выполнение на целевых устройствах.
-
Поэтапное преобразование: TorchScript предлагает подход поэтапного преобразования, позволяющий постепенно конвертировать части твоей модели PyTorch в TorchScript. Эта гибкость особенно полезна при работе со сложными моделями или когда ты хочешь оптимизировать определенные части кода.
Варианты развертывания в TorchScript#
Прежде чем мы перейдем к коду для экспорта моделей YOLO26 в формат TorchScript, давай разберемся, где обычно используются модели TorchScript.
TorchScript offers various deployment options for machine learning models, such as:
-
C++ API: The most common use case for TorchScript is its LibTorch C++ API, which allows you to load and execute optimized TorchScript models directly within C++ applications. This is ideal for production environments where Python may not be suitable or available. The C++ API offers low-overhead and efficient execution of TorchScript models, maximizing performance potential.
-
Mobile Deployment: For low-latency, offline inference and data privacy on mobile devices, use ExecuTorch, PyTorch's replacement for TorchScript Mobile.
-
Облачное развертывание: Модели TorchScript можно развертывать на облачных серверах с использованием решений, таких как TorchServe. Он предоставляет такие функции, как версионирование моделей, пакетная обработка (batching) и мониторинг метрик для масштабируемого развертывания в производственных средах. Облачное развертывание с помощью TorchScript может сделать твои модели доступными через API или другие веб-сервисы.
Поддерживаемые задачи#
Экспорт в TorchScript поддерживает все семь задач Ultralytics. Семантическая сегментация и оценка глубины доступны только в YOLO26 — единственном семействе, в котором поставляются эти «головы».
Экспорт в TorchScript: Конвертация твоей модели YOLO26#
Экспорт моделей YOLO26 в TorchScript упрощает их использование в разных местах и помогает им работать быстрее и эффективнее. Это отлично подходит для всех, кто хочет более эффективно использовать модели глубокого обучения в реальных приложениях.
Установка#
Чтобы установить необходимый пакет, выполни:
# Install the required package for YOLO26
pip install ultralyticsПодробные инструкции и лучшие практики, связанные с процессом установки, можно найти в нашем руководстве по установке Ultralytics. Если в процессе установки необходимых пакетов для YOLO26 у тебя возникнут какие-либо трудности, обратись к нашему руководству по частым проблемам за решениями и советами.
Использование#
Все модели Ultralytics YOLO26 поддерживают экспорт из коробки, что позволяет легко интегрировать их в твой привычный рабочий процесс развертывания. Ты можешь посмотреть полный список поддерживаемых форматов экспорта и параметров конфигурации, чтобы выбрать оптимальную настройку для своего приложения.
The TorchScript format supports the Export, Predict, and Validate modes. Export your model, then load the exported model to run inference or validate its accuracy.
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 | Quantization precision: 16 (FP16) requires GPU export with device=0; 32/unset is FP32. Replaces the deprecated half flag. |
nms | bool | False | Добавляет подавление немаксимумов (NMS), что необходимо для точной и эффективной постобработки обнаружений. |
batch | int | 1 | Указывает размер пакета для пакетного инференса экспортированной модели или максимальное количество изображений, которые экспортированная модель будет обрабатывать одновременно в режиме predict. |
device | str | None | Указывает устройство для экспорта: GPU (device=0), CPU (device=cpu), MPS для Apple silicon (device=mps). |
Дополнительную информацию о процессе экспорта см. на странице документации Ultralytics по экспорту.
Развертывание экспортированных моделей YOLO26 TorchScript#
After successfully exporting your Ultralytics YOLO26 models to TorchScript format, you can now deploy them. The primary and recommended first step for running a TorchScript model is to use the YOLO("model.torchscript") method, as outlined in the previous usage code snippet. For in-depth instructions on deploying your TorchScript models in other settings, take a look at the following resources:
-
Explore Mobile Deployment: Use ExecuTorch's separate
torch.export()→.ptepipeline for current PyTorch mobile deployment. -
Master Server-Side Deployment: Learn how to deploy models server-side with TorchServe, offering a step-by-step tutorial for scalable, efficient model serving.
-
Implement C++ Deployment: Dive into the Tutorial on Loading a TorchScript Model in C++, facilitating the integration of your TorchScript models into C++ applications for enhanced performance and versatility.
Резюме#
В этом руководстве мы рассмотрели процесс экспорта моделей Ultralytics YOLO26 в формат TorchScript. Следуя предоставленным инструкциям, ты сможешь оптимизировать модели YOLO26 для повышения производительности и получить гибкость для их развертывания на различных платформах и в различных средах.
For further details on usage, visit TorchScript's official documentation.
Кроме того, если ты хочешь узнать больше о других интеграциях Ultralytics YOLO26, посети нашу страницу руководства по интеграции. Там ты найдешь множество полезных ресурсов и идей.
FAQ#
Экспорт модели 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")For more details about the export process, refer to the Ultralytics documentation on exporting.
Использование TorchScript для развертывания моделей YOLO26 дает несколько преимуществ:
- Портативность: Экспортированные модели могут работать в приложениях C++ без использования Python.
- Оптимизация: TorchScript поддерживает выполнение статического графа и JIT-компиляцию, что позволяет оптимизировать производительность модели.
- Кросс-языковая интеграция: Модели TorchScript можно интегрировать в другие языки программирования, что повышает гибкость и расширяемость.
- Сериализация: Модели можно сериализовать, что позволяет осуществлять независимую от платформы загрузку и инференс.
For more insights into deployment, visit the TorchServe Documentation and the C++ Deployment Guide. For on-device mobile deployment, PyTorch now recommends ExecuTorch, which uses its own separate
torch.export()→.ptepipeline rather than TorchScript.Чтобы установить необходимый пакет для экспорта моделей YOLO26, используй следующую команду:
Установка# Install the required package for YOLO26 pip install ultralyticsFor detailed instructions, visit the Ultralytics Installation guide. If any issues arise during installation, consult the Common Issues guide.
После экспорта моделей YOLO26 в формат TorchScript ты можешь развернуть их на различных платформах:
- C++ API: Use LibTorch for low-overhead, highly efficient production environments.
- Mobile Deployment: Use ExecuTorch, PyTorch's supported replacement with a separate
.pteexport pipeline. - Cloud Deployment: Utilize services like TorchServe for scalable server-side deployment.
Изучи подробные руководства по развертыванию моделей в этих средах, чтобы в полной мере использовать возможности TorchScript.