YOLO11 Экспорт моделей на TorchScript для быстрого развертывания
Развертывание моделей компьютерного зрения в различных средах, включая встроенные системы, веб-браузеры или платформы с ограниченной поддержкой Python , требует гибкого и портативного решения. TorchScript ориентирован на переносимость и возможность запуска моделей в средах, где весь фреймворк Python недоступен. Это делает его идеальным для сценариев, в которых необходимо развернуть возможности компьютерного зрения на различных устройствах или платформах.
Экспорт в Torchscript для сериализации ваших Ultralytics YOLO11 моделей для обеспечения кроссплатформенной совместимости и упрощения развертывания. В этом руководстве мы покажем вам, как экспортировать модели YOLO11 в формат TorchScript , что облегчит их использование в более широком спектре приложений.
Почему вы должны экспортировать на TorchScript?
Разработанный создателями PyTorch, TorchScript является мощным инструментом для оптимизации и развертывания моделей 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 может оказаться непригодным или недоступным. API C++ обеспечивает низкую нагрузку и эффективное выполнение моделей TorchScript , максимизируя потенциал производительности.
-
Мобильное развертывание: TorchScript предлагает инструменты для преобразования моделей в форматы, легко развертываемые на мобильных устройствах. PyTorch Mobile предоставляет среду исполнения для выполнения этих моделей в приложениях iOS и Android . Это позволяет проводить выводы с низкой задержкой и в автономном режиме, что повышает удобство использования и конфиденциальность данных.
-
Развертывание в облаке: модели TorchScript могут быть развернуты на облачных серверах с помощью таких решений, как TorchServe. Он предоставляет такие возможности, как версионирование моделей, пакетная обработка и мониторинг метрик для масштабируемого развертывания в производственных средах. Облачное развертывание с помощью TorchScript может сделать ваши модели доступными через API или другие веб-сервисы.
Экспорт в TorchScript: Преобразование модели YOLO11
Экспорт моделей YOLO11 в TorchScript упрощает их использование в различных местах и помогает работать быстрее и эффективнее. Это очень полезно для тех, кто хочет более эффективно использовать модели глубокого обучения в реальных приложениях.
Установка
Чтобы установить необходимый пакет, выполните команду:
Для получения подробных инструкций и лучших практик, связанных с процессом установки, ознакомьтесь с нашим руководством по установке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")
Аргументы экспорта
Аргумент | Тип | По умолчанию | Описание |
---|---|---|---|
format |
str |
'torchscript' |
Целевой формат экспортируемой модели, определяющий совместимость с различными средами развертывания. |
imgsz |
int или tuple |
640 |
Желаемый размер изображения для входных данных модели. Может быть целым числом для квадратных изображений или кортежем (height, width) для получения конкретных размеров. |
optimize |
bool |
False |
Применяет оптимизацию для мобильных устройств, потенциально уменьшая размер модели и повышая производительность. |
nms |
bool |
False |
Добавляет не максимальное подавление (NMS), необходимое для точной и эффективной постобработки обнаружения. |
batch |
int |
1 |
Указывает размер пакетного вывода экспортной модели или максимальное количество изображений, которые экспортируемая модель будет обрабатывать одновременно в predict режим. |
Более подробную информацию о процессе экспорта можно найти на странице документацииUltralytics , посвященной экспорту.
Развертывание экспортированных моделей YOLO11 TorchScript
После успешного экспорта моделей Ultralytics YOLO11 в формат TorchScript вы можете приступить к их развертыванию. Основным и рекомендуемым первым шагом для запуска модели TorchScript является использование метода YOLO("model.torchscript"), как описано в предыдущем фрагменте кода. Однако для получения подробных инструкций по развертыванию моделей TorchScript в различных других условиях ознакомьтесь со следующими ресурсами:
-
Изучите мобильное развертывание: Сайт PyTorch Документация по мобильным устройствам содержит исчерпывающие рекомендации по развертыванию моделей на мобильных устройствах, обеспечивая эффективность и отзывчивость ваших приложений.
-
Мастер развертывания на стороне сервера: Узнайте, как развертывать модели на стороне сервера с помощью 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")
Более подробную информацию о процессе экспорта см. в документации по экспорту на сайтеUltralytics .
Почему я должен использовать TorchScript для развертывания моделей YOLO11 ?
Использование TorchScript для развертывания моделей YOLO11 имеет ряд преимуществ:
- Переносимость: Экспортированные модели могут работать в средах, не требующих Python, таких как приложения C++, встраиваемые системы или мобильные устройства.
- Оптимизация: TorchScript поддерживает статическое выполнение графов и компиляцию Just-In-Time (JIT), что позволяет оптимизировать производительность модели.
- Межъязыковая интеграция: модели TorchScript могут быть интегрированы в другие языки программирования, что повышает гибкость и расширяемость.
- Сериализация: Модели могут быть сериализованы, что позволяет загружать их и делать выводы независимо от платформы.
Более подробную информацию о развертывании можно найти на сайтах PyTorch Mobile Documentation, TorchServe Documentation и C++ Deployment Guide.
Каковы шаги по установке для экспорта моделей YOLO11 в TorchScript?
Чтобы установить необходимый пакет для экспорта моделей YOLO11 , выполните следующую команду:
Подробные инструкции см. в руководстве по установкеUltralytics . Если во время установки возникнут какие-либо проблемы, обратитесь к руководству по общим проблемам.
Как развернуть экспортированные модели TorchScript YOLO11 ?
После экспорта моделей YOLO11 в формат TorchScript вы можете развернуть их на различных платформах:
- C++ API: Идеально подходит для малозатратных и высокоэффективных производственных сред.
- Мобильное развертывание: Используйте PyTorch Mobile для приложений iOS и Android .
- Развертывание в облаке: Используйте такие сервисы, как TorchServe, для масштабируемого развертывания на стороне сервера.
Изучите комплексные рекомендации по развертыванию моделей в этих условиях, чтобы в полной мере использовать возможности TorchScript.