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

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

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

Почему стоит выполнять экспорт в TorchScript?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Варианты развертывания в 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 или другие веб-сервисы.

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

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

Установка

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

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

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

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

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

Использование
from ultralytics import YOLO

# Load the 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")

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

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

Для получения более подробной информации о процессе экспорта посети страницу документации Ultralytics по экспорту.

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

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

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

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

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

Резюме

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

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

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

Часто задаваемые вопросы (FAQ)

Что такое экспорт модели Ultralytics YOLO26 в TorchScript?

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

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

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

Использование
from ultralytics import YOLO

# Load the 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?

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

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

Для получения дополнительной информации о развертывании посети документацию PyTorch Mobile, документацию TorchServe и руководство по развертыванию на C++.

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

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

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

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

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

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

  • C++ API: Идеально подходит для производственных сред с низкими накладными расходами и высокой эффективностью.
  • Мобильное развертывание: Используй PyTorch Mobile для приложений iOS и Android.
  • Облачное развертывание: Используй такие сервисы, как TorchServe, для масштабируемого развертывания на стороне сервера.

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

Комментарии