Meet YOLO26: next-gen vision AI.

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

Развертывание моделей компьютерного зрения в различных средах, включая встроенные системы, веб-браузеры или платформы с ограниченной поддержкой Python, требует гибкого и переносимого решения. TorchScript фокусируется на переносимости и возможности запуска моделей в средах, где отсутствует весь фреймворк Python. Это делает его идеальным для сценариев, в которых тебе нужно развернуть возможности компьютерного зрения на различных устройствах или платформах.

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

Link to this sectionПочему стоит использовать экспорт в TorchScript?#

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

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

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

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

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

Link to this sectionКлючевые особенности моделей TorchScript#

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

Обзор ключевых функций TorchScript

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

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

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

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

  • Кросс-языковая интеграция: С помощью TorchScript ты можешь экспортировать модели PyTorch в другие языки, такие как C++, Java и JavaScript. Это упрощает интеграцию моделей PyTorch в существующие программные системы, написанные на разных языках.

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

Link to this sectionВарианты развертывания в TorchScript#

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

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

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

  • Мобильное развертывание: TorchScript предлагает инструменты для преобразования моделей в форматы, легко развертываемые на мобильных устройствах. PyTorch Mobile предоставляет среду выполнения для запуска этих моделей в приложениях iOS и Android. Это обеспечивает возможности инференса с низкой задержкой в автономном режиме, улучшая пользовательский опыт и конфиденциальность данных.

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

Link to this sectionЭкспорт в TorchScript: Конвертация твоей модели YOLO26#

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

Link to this sectionУстановка#

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

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

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

Link to this sectionИспользование#

Все модели Ultralytics 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'
Предсказание
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")

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

АргументТипПо умолчаниюОписание
formatstr'torchscript'Целевой формат для экспортированной модели, определяющий совместимость с различными средами развертывания.
imgszint или tuple640Желаемый размер изображения для входных данных модели. Может быть целым числом для квадратных изображений или кортежем (height, width) для указания конкретных размеров.
dynamicboolFalseПозволяет использовать динамические размеры входных данных, повышая гибкость при работе с изображениями разного размера.
halfboolFalseВключает квантование FP16 (половинной точности), уменьшая размер модели и потенциально ускоряя вывод на поддерживаемом оборудовании.
optimizeboolFalseПрименяет оптимизацию для мобильных устройств, потенциально уменьшая размер модели и повышая производительность.
nmsboolFalseДобавляет алгоритм подавления немаксимумов (NMS), необходимый для точной и эффективной постобработки результатов детектирования.
batchint1Указывает размер батча для инференса модели при экспорте или максимальное количество изображений, которое экспортированная модель будет обрабатывать одновременно в режиме predict.
devicestrNoneУказывает устройство для экспорта: GPU (device=0), CPU (device=cpu), MPS для Apple silicon (device=mps).

Более подробную информацию о процессе экспорта можно найти на странице документации Ultralytics по экспорту.

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

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

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

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

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

Link to this sectionИтог#

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

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

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

Link to this sectionFAQ#

Link to this sectionЧто такое экспорт модели Ultralytics YOLO26 в TorchScript?#

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

Link to this sectionКак я могу экспортировать свою модель YOLO26 в TorchScript с помощью Ultralytics?#

Чтобы экспортировать модель 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 по экспорту.

Link to this sectionПочему мне стоит использовать TorchScript для развертывания моделей YOLO26?#

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

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

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

Link to this sectionКаковы шаги по установке для экспорта моделей YOLO26 в TorchScript?#

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

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

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

Link to this sectionКак развернуть мои экспортированные модели TorchScript YOLO26?#

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

  • C++ API: Идеально подходит для производственных сред с низкими накладными расходами и высокой эффективностью.
  • Мобильное развертывание: Запускай модели TorchScript на устройстве с помощью LibTorch (среда выполнения PyTorch C++). Для новых мобильных проектов PyTorch рекомендует ExecuTorch, отдельный конвейер экспорта .pte.
  • Облачное развертывание: Используй такие сервисы, как TorchServe, для масштабируемого серверного развертывания.

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

Комментарии