Экспорт модели YOLO11 в TorchScript для быстрого развертывания
Развертывание моделей компьютерного зрения в различных средах, включая встроенные системы, веб-браузеры или платформы с ограниченной поддержкой python, требует гибкого и переносимого решения. TorchScript фокусируется на переносимости и возможности запуска моделей в средах, где вся структура python недоступна. Это делает его идеальным для сценариев, когда вам необходимо развернуть возможности компьютерного зрения на различных устройствах или платформах.
Экспорт в Torchscript для сериализации ваших моделей Ultralytics YOLO11 для кроссплатформенной совместимости и оптимизированного развертывания. В этом руководстве мы покажем вам, как экспортировать ваши модели YOLO11 в формат TorchScript, что упростит их использование в более широком спектре приложений.
Зачем экспортировать в TorchScript?
TorchScript, разработанный создателями PyTorch, — это мощный инструмент для оптимизации и развертывания моделей PyTorch на различных платформах. Экспорт моделей YOLO11 в TorchScript имеет решающее значение для перехода от исследований к реальным приложениям. TorchScript, часть фреймворка PyTorch, помогает сделать этот переход более плавным, позволяя использовать модели PyTorch в средах, которые не поддерживают python.
Процесс включает в себя два метода: трассировку и написание скриптов. Трассировка записывает операции во время выполнения модели, а написание скриптов позволяет определять модели с использованием подмножества Python. Эти методы гарантируют, что такие модели, как YOLO11, по-прежнему могут творить чудеса даже за пределами своей обычной среды Python.
Модели TorchScript также можно оптимизировать с помощью таких методов, как объединение операторов и улучшения в использовании памяти, что обеспечивает эффективное выполнение. Еще одним преимуществом экспорта в TorchScript является его потенциал для ускорения выполнения модели на различных аппаратных платформах. Он создает автономное, готовое к производству представление вашей модели PyTorch, которое можно интегрировать в среды C++, встроенные системы или развернуть в веб- или мобильных приложениях.
Ключевые особенности моделей TorchScript
TorchScript, ключевая часть экосистемы PyTorch, предоставляет мощные функции для оптимизации и развертывания моделей глубокого обучения.
Вот ключевые особенности, которые делают TorchScript ценным инструментом для разработчиков:
-
Статическое выполнение графа: TorchScript использует статическое графовое представление вычислений модели, которое отличается от динамического выполнения графа в PyTorch. При статическом выполнении графа вычислительный граф определяется и компилируется один раз перед фактическим выполнением, что приводит к повышению производительности во время инференса.
-
Сериализация модели: TorchScript позволяет сериализовать модели PyTorch в платформонезависимый формат. Сериализованные модели можно загружать без необходимости использования исходного кода python, что позволяет развертывать их в различных средах выполнения.
-
JIT-компиляция: TorchScript использует Just-In-Time (JIT) компиляцию для преобразования моделей PyTorch в оптимизированное промежуточное представление. JIT компилирует вычислительный граф модели, обеспечивая эффективное выполнение на целевых устройствах.
-
Межъязыковая интеграция: С помощью TorchScript вы можете экспортировать модели PyTorch на другие языки, такие как C++, Java и JavaScript. Это упрощает интеграцию моделей PyTorch в существующие программные системы, написанные на разных языках.
-
Постепенное преобразование: TorchScript предоставляет подход постепенного преобразования, позволяя вам инкрементно преобразовывать части вашей модели PyTorch в TorchScript. Эта гибкость особенно полезна при работе со сложными моделями или когда вы хотите оптимизировать определенные части кода.
Варианты развертывания в TorchScript
Прежде чем мы рассмотрим код для экспорта моделей YOLO11 в формат TorchScript, давайте разберемся, где обычно используются модели TorchScript.
TorchScript предлагает различные варианты развертывания для моделей машинного обучения, такие как:
-
C++ API: Наиболее распространенным вариантом использования TorchScript является его C++ API, который позволяет загружать и выполнять оптимизированные модели TorchScript непосредственно в C++ приложениях. Это идеально подходит для производственных сред, где Python может быть непригодным или недоступным. C++ API предлагает низкие накладные расходы и эффективное выполнение моделей TorchScript, максимально увеличивая потенциал производительности.
-
Развертывание на мобильных устройствах: TorchScript предлагает инструменты для преобразования моделей в форматы, готовые к развертыванию на мобильных устройствах. PyTorch Mobile предоставляет среду выполнения для выполнения этих моделей в приложениях iOS и Android. Это обеспечивает возможности автономного вывода с низкой задержкой, улучшая пользовательский опыт и конфиденциальность данных.
-
Развертывание в облаке: Модели TorchScript можно развертывать на облачных серверах с помощью таких решений, как TorchServe. Он предоставляет такие функции, как управление версиями моделей, пакетирование и мониторинг метрик для масштабируемого развертывания в производственных средах. Развертывание в облаке с помощью TorchScript может сделать ваши модели доступными через API или другие веб-сервисы.
Экспорт в TorchScript: Преобразование вашей модели YOLO11
Экспорт моделей YOLO11 в TorchScript упрощает их использование в различных местах и помогает им работать быстрее и эффективнее. Это отлично подходит для тех, кто хочет более эффективно использовать модели глубокого обучения в реальных приложениях.
Установка
Чтобы установить необходимый пакет, выполните:
Установка
# Install the required package for YOLO11
pip install ultralytics
Подробные инструкции и рекомендации, касающиеся процесса установки, см. в нашем руководстве по установке Ultralytics. Если во время установки необходимых пакетов для YOLO11 у вас возникнут какие-либо трудности, обратитесь к нашему руководству по распространенным проблемам для получения решений и советов.
Использование
Все модели Ultralytics YOLO11 разработаны для поддержки экспорта из коробки, что упрощает их интеграцию в предпочитаемый вами рабочий процесс развертывания. Вы можете просмотреть полный список поддерживаемых форматов экспорта и параметров конфигурации, чтобы выбрать оптимальную настройку для вашего приложения.
Использование
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to TorchScript format
model.export(format="torchscript") # creates 'yolo11n.torchscript'
# Load the exported TorchScript model
torchscript_model = YOLO("yolo11n.torchscript")
# Run inference
results = torchscript_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to TorchScript format
yolo export model=yolo11n.pt format=torchscript # creates 'yolo11n.torchscript'
# Run inference with the exported model
yolo predict model=yolo11n.torchscript source='https://ultralytics.com/images/bus.jpg'
Аргументы экспорта
Аргумент | Тип | По умолчанию | Описание |
---|---|---|---|
format |
str |
'torchscript' |
Целевой формат для экспортируемой модели, определяющий совместимость с различными средами развертывания. |
imgsz |
int или tuple |
640 |
Желаемый размер изображения для ввода модели. Может быть целым числом для квадратных изображений или кортежем (height, width) для конкретных размеров. |
dynamic |
bool |
False |
Обеспечивает динамические размеры входных данных, повышая гибкость при обработке различных размеров изображений. |
optimize |
bool |
False |
Применяет оптимизацию для мобильных устройств, потенциально уменьшая размер модели и повышая производительность. |
nms |
bool |
False |
Добавляет Non-Maximum Suppression (NMS), необходимую для точной и эффективной постобработки обнаружения. |
batch |
int |
1 |
Указывает размер пакета для модели экспорта или максимальное количество изображений, которые экспортируемая модель будет обрабатывать одновременно в режиме predict режиме. |
device |
str |
None |
Указывает устройство для экспорта: GPU (device=0 ), CPU (device=cpu ), MPS для Apple silicon (device=mps ). |
Для получения более подробной информации о процессе экспорта посетите страницу документации Ultralytics по экспорту.
Развертывание экспортированных моделей YOLO11 TorchScript
После успешного экспорта ваших моделей Ultralytics YOLO11 в формат TorchScript, вы можете их развернуть. Основным и рекомендуемым первым шагом для запуска модели TorchScript является использование метода YOLO("model.torchscript"), как указано в предыдущем фрагменте кода. Однако для получения подробных инструкций по развертыванию ваших моделей TorchScript в различных других средах, ознакомьтесь со следующими ресурсами:
-
Изучите развертывание на мобильных устройствах: Документация PyTorch Mobile содержит подробные инструкции по развертыванию моделей на мобильных устройствах, что обеспечивает эффективность и оперативность ваших приложений.
-
Освойте развертывание на стороне сервера: Узнайте, как развертывать модели на стороне сервера с помощью TorchServe, предлагая пошаговое руководство для масштабируемого и эффективного обслуживания моделей.
-
Реализуйте развертывание на C++: Ознакомьтесь с руководством по загрузке модели TorchScript на C++, что облегчает интеграцию ваших моделей TorchScript в приложения C++ для повышения производительности и универсальности.
Обзор
В этом руководстве мы рассмотрели процесс экспорта моделей Ultralytics YOLO11 в формат TorchScript. Следуя приведенным инструкциям, вы можете оптимизировать модели YOLO11 для повышения производительности и получить гибкость для их развертывания на различных платформах и в различных средах.
Для получения более подробной информации об использовании посетите официальную документацию TorchScript.
Кроме того, если вы хотите узнать больше о других интеграциях Ultralytics YOLO11, посетите нашу страницу руководства по интеграции. Там вы найдете множество полезных ресурсов и идей.
Часто задаваемые вопросы
Что такое экспорт модели Ultralytics YOLO11 в TorchScript?
Экспорт модели Ultralytics YOLO11 в TorchScript обеспечивает гибкое кроссплатформенное развертывание. TorchScript, являющийся частью экосистемы PyTorch, облегчает сериализацию моделей, которые затем можно выполнять в средах, не поддерживающих python. Это делает его идеальным для развертывания моделей на встроенных системах, в средах C++, мобильных приложениях и даже веб-браузерах. Экспорт в TorchScript обеспечивает эффективную производительность и более широкую применимость ваших моделей YOLO11 на различных платформах.
Как я могу экспортировать свою модель YOLO11 в TorchScript с помощью Ultralytics?
Чтобы экспортировать модель YOLO11 в TorchScript, вы можете использовать следующий пример кода:
Использование
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to TorchScript format
model.export(format="torchscript") # creates 'yolo11n.torchscript'
# Load the exported TorchScript model
torchscript_model = YOLO("yolo11n.torchscript")
# Run inference
results = torchscript_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to TorchScript format
yolo export model=yolo11n.pt format=torchscript # creates 'yolo11n.torchscript'
# Run inference with the exported model
yolo predict model=yolo11n.torchscript source='https://ultralytics.com/images/bus.jpg'
Для получения более подробной информации о процессе экспорта обратитесь к документации Ultralytics по экспорту.
Почему мне следует использовать TorchScript для развертывания моделей YOLO11?
Использование TorchScript для развертывания моделей YOLO11 предлагает несколько преимуществ:
- Портативность: Экспортированные модели могут работать в средах, не требующих python, таких как приложения C++, встроенные системы или мобильные устройства.
- Оптимизация: TorchScript поддерживает статическое выполнение графа и JIT-компиляцию (Just-In-Time), что может оптимизировать производительность модели.
- Межъязыковая интеграция: Модели TorchScript могут быть интегрированы в другие языки программирования, что повышает гибкость и расширяемость.
- Сериализация: Модели могут быть сериализованы, что позволяет загружать и выполнять вывод независимо от платформы.
Для получения дополнительной информации о развертывании посетите документацию PyTorch Mobile, документацию TorchServe и руководство по развертыванию на C++.
Каковы этапы установки для экспорта моделей YOLO11 в TorchScript?
Чтобы установить необходимый пакет для экспорта моделей YOLO11, используйте следующую команду:
Установка
# Install the required package for YOLO11
pip install ultralytics
Подробные инструкции см. в руководстве по установке Ultralytics. Если во время установки возникнут какие-либо проблемы, обратитесь к руководству по распространенным проблемам.
Как развернуть экспортированные модели TorchScript YOLO11?
После экспорта моделей YOLO11 в формат TorchScript вы можете развернуть их на различных платформах:
- C++ API: Идеально подходит для производственных сред с низкими накладными расходами и высокой эффективностью.
- Развертывание на мобильных устройствах: Используйте PyTorch Mobile для приложений iOS и Android.
- Развертывание в облаке: Используйте такие сервисы, как TorchServe для масштабируемого развертывания на стороне сервера.
Ознакомьтесь с подробными рекомендациями по развертыванию моделей в этих средах, чтобы в полной мере воспользоваться возможностями TorchScript.