Экспорт модели YOLO11 на TorchScript для быстрого развертывания
Deploying computer vision models across different environments, including embedded systems, web browsers, or platforms with limited Python support, requires a flexible and portable solution. TorchScript focuses on portability and the ability to run models in environments where the entire Python framework is unavailable. This makes it ideal for scenarios where you need to deploy your computer vision capabilities across various devices or platforms.
Export to Torchscript to serialize your Ultralytics YOLO11 models for cross-platform compatibility and streamlined deployment. In this guide, we'll show you how to export your YOLO11 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 YOLO11 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.
Этот процесс включает в себя две техники: трассировку и скриптинг. Трассировка записывает операции во время выполнения модели, а скриптинг позволяет определять модели, используя подмножество Python. Эти техники гарантируют, что такие модели, как YOLO11, смогут творить свою магию даже вне привычной среды 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 ценным инструментом для разработчиков:
Static Graph Execution: TorchScript использует статическое графовое представление вычислений модели, что отличается от PyTorch'dynamic graph execution. При статическом выполнении графа вычислительный граф определяется и компилируется один раз перед фактическим выполнением, что приводит к улучшению производительности во время вывода.
Сериализация моделей: 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 offers various deployment options for machine learning models, such as:
C++ API: Самый распространенный вариант использования TorchScript - это его C++ API, который позволяет тебе загружать и выполнять оптимизированные TorchScript модели непосредственно в приложениях на C++. Это идеальный вариант для производственных сред, где Python может оказаться непригодным или недоступным. C++ API обеспечивает низкие накладные расходы и эффективное выполнение моделей TorchScript , максимально увеличивая потенциал производительности.
Mobile Deployment: TorchScript offers tools for converting models into formats readily deployable on mobile devices. PyTorch Mobile provides a runtime for executing these models within iOS and Android apps. This enables low-latency, offline inference capabilities, enhancing user experience and data privacy.
Развертывание в облаке: модели 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")
Более подробно о процессе экспорта можно узнать на странице документацииUltralytics , посвященной экспорту.
Развертывание экспортированных моделей YOLO11 TorchScript
После успешного экспорта твоих моделей Ultralytics YOLO11 в формат TorchScript ты можешь приступить к их развертыванию. Основным и рекомендуемым первым шагом для запуска модели TorchScript является использование метода YOLO("model.torchscript"), как описано в предыдущем фрагменте кода использования. Однако для получения подробных инструкций по развертыванию моделей TorchScript в различных других настройках, взгляни на следующие ресурсы:
Explore Mobile Deployment: The PyTorch Mobile Documentation provides comprehensive guidelines for deploying models on mobile devices, ensuring your applications are efficient and responsive.
Мастер развертывания на стороне сервера: Узнай, как разворачивать модели на стороне сервера с помощью TorchServe, предлагающего пошаговое руководство по масштабируемой и эффективной подаче моделей.
Реализуй развертывание C++: Погрузись в учебник по загрузке модели TorchScript в C++, облегчающий интеграцию твоих моделей TorchScript в приложения C++ для повышения производительности и универсальности.
Резюме
В этом руководстве мы рассмотрели процесс экспорта моделей Ultralytics YOLO11 в формат TorchScript . Следуя приведенным инструкциям, ты сможешь оптимизировать модели YOLO11 для повышения производительности и получить гибкость для их развертывания на различных платформах и в различных средах.
Более подробную информацию об использовании можно найти в официальной документацииTorchScript.
Также, если ты хочешь узнать больше о других интеграциях Ultralytics YOLO11, посети страницу нашего руководства по интеграции. Там ты найдешь множество полезных ресурсов и идей.
ВОПРОСЫ И ОТВЕТЫ
Что такое экспорт модели Ultralytics YOLO11 на TorchScript?
Экспорт модели Ultralytics YOLO11 в TorchScript позволяет гибко развертывать ее в кроссплатформенных средах. TorchScript YOLO11, являясь частью экосистемы 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.