YOLOv8 Экспорт моделей на TorchScript для быстрого развертывания
Развертывание моделей компьютерного зрения в различных средах, включая встраиваемые системы, веб-браузеры или платформы с ограниченной поддержкой Python, требует гибкого и переносимого решения. TorchScript ориентирован на переносимость и возможность запускать модели в средах, где недоступен весь фреймворк Python. Это делает его идеальным для сценариев, в которых тебе нужно развернуть возможности компьютерного зрения на различных устройствах или платформах.
Экспортируй в Torchscript , чтобы сериализовать свои Ultralytics YOLOv8 модели для кроссплатформенной совместимости и упрощения развертывания. В этом руководстве мы покажем тебе, как экспортировать твои модели YOLOv8 в формат TorchScript , что облегчит тебе их использование в более широком спектре приложений.
Почему тебе стоит экспортировать на TorchScript?
Разработанный создателями PyTorch, TorchScript - это мощный инструмент для оптимизации и развертывания PyTorch -моделей на различных платформах. Экспорт моделей YOLOv8 в TorchScript очень важен для перехода от исследований к реальным приложениям. TorchScript PyTorch , часть фреймворка , помогает сделать этот переход более плавным, позволяя использовать модели PyTorch в средах, которые не поддерживают Python.
В этом процессе задействованы две техники: трассировка и скриптинг. Трассировка записывает операции во время выполнения модели, а скриптинг позволяет определять модели, используя подмножество Python. Эти техники гарантируют, что такие модели, как YOLOv8, смогут творить свою магию даже вне привычной среды Python.
Модели на TorchScript также могут быть оптимизированы с помощью таких приемов, как слияние операторов и уточнение использования памяти, что обеспечивает эффективное выполнение. Еще одно преимущество экспорта в TorchScript - это возможность ускорить выполнение модели на различных аппаратных платформах. Он создает автономное, готовое к производству представление твоей модели PyTorch, которое можно интегрировать в среды C++, встраиваемые системы или развернуть в веб- или мобильных приложениях.
Ключевые особенности моделей TorchScript
TorchScript, ключевая часть экосистемы PyTorch, предоставляет мощные возможности для оптимизации и развертывания моделей глубокого обучения.
Вот ключевые особенности, которые делают 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
Прежде чем мы посмотрим на код для экспорта YOLOv8 моделей в TorchScript формат, давайте разберемся, где TorchScript Обычно используются модели.
TorchScript предлагает различные варианты развертывания моделей машинного обучения, например:
-
C++ API: Самый распространенный вариант использования TorchScript - это его C++ API, который позволяет тебе загружать и выполнять оптимизированные TorchScript модели непосредственно в приложениях на C++. Это идеальный вариант для производственных сред, где Python может оказаться непригодным или недоступным. C++ API обеспечивает низкие накладные расходы и эффективное выполнение моделей TorchScript , максимально увеличивая потенциал производительности.
-
Мобильное развертывание: TorchScript предлагает инструменты для преобразования моделей в форматы, легко развертываемые на мобильных устройствах. PyTorch Mobile предоставляет среду исполнения для выполнения этих моделей в приложениях iOS и Android . Это позволяет использовать оффлайн-модели с низкой задержкой, что повышает удобство использования и конфиденциальность данных.
-
Развертывание в облаке: модели TorchScript можно развернуть на облачных серверах с помощью таких решений, как TorchServe. Он предоставляет такие возможности, как версионирование моделей, пакетная обработка и мониторинг метрик для масштабируемого развертывания в производственных средах. Облачное развертывание с помощью TorchScript может сделать твои модели доступными через API или другие веб-сервисы.
Экспорт в TorchScript: Преобразование твоей модели YOLOv8
Экспорт моделей YOLOv8 в TorchScript упрощает их использование в разных местах и помогает им работать быстрее и эффективнее. Это отлично подходит для тех, кто хочет более эффективно использовать модели глубокого обучения в реальных приложениях.
Установка
Чтобы установить нужный пакет, выполни:
Для получения подробных инструкций и лучших практик, связанных с процессом установки, ознакомься с нашим руководством по установкеUltralytics . Во время установки необходимых пакетов для YOLOv8, если у тебя возникнут какие-либо трудности, обратись к нашему руководству по общим проблемам, чтобы найти решения и советы.
Использование
Прежде чем погрузиться в инструкцию по использованию, важно отметить, что, хотя все моделиUltralytics YOLOv8 доступны для экспорта, ты можешь убедиться, что выбранная тобой модель поддерживает функцию экспорта, здесь.
Использование
from ultralytics import YOLO
# Load the YOLOv8 model
model = YOLO("yolov8n.pt")
# Export the model to TorchScript format
model.export(format="torchscript") # creates 'yolov8n.torchscript'
# Load the exported TorchScript model
torchscript_model = YOLO("yolov8n.torchscript")
# Run inference
results = torchscript_model("https://ultralytics.com/images/bus.jpg")
Более подробно о процессе экспорта можно узнать на странице документацииUltralytics , посвященной экспорту.
Развертывание экспортированных YOLOv8 TorchScript моделей
После успешного экспорта твоих моделей Ultralytics YOLOv8 в формат TorchScript ты можешь приступить к их развертыванию. Основным и рекомендуемым первым шагом для запуска TorchScript-модели является использование метода YOLO("model.torchscript"), как описано в предыдущем фрагменте кода. Однако для получения подробных инструкций по развертыванию TorchScript-моделей в различных других условиях посмотри следующие ресурсы:
-
Исследуй мобильное развертывание: Документация по мобильным устройствам PyTorch содержит исчерпывающие рекомендации по развертыванию моделей на мобильных устройствах, обеспечивая эффективность и отзывчивость твоих приложений.
-
Мастер развертывания на стороне сервера: Узнай, как разворачивать модели на стороне сервера с помощью TorchServe, предлагающего пошаговое руководство по масштабируемой и эффективной подаче моделей.
-
Реализуй развертывание C++: Погрузись в учебник по загрузке модели TorchScript в C++, облегчающий интеграцию твоих моделей TorchScript в приложения C++ для повышения производительности и универсальности.
Резюме
В этом руководстве мы рассмотрели процесс экспорта моделей Ultralytics YOLOv8 в формат TorchScript. Следуя приведенным инструкциям, ты сможешь оптимизировать модели YOLOv8 для повышения производительности и получить гибкость для их развертывания на различных платформах и в различных средах.
Более подробную информацию об использовании можно найти в официальной документацииTorchScript.
Также, если ты хочешь узнать больше о других интеграциях Ultralytics YOLOv8 , посети страницу нашего руководства по интеграции. Там ты найдешь множество полезных ресурсов и идей.
ВОПРОСЫ И ОТВЕТЫ
Что такое Ultralytics YOLOv8 экспорт модели на TorchScript?
Экспорт модели Ultralytics YOLOv8 в TorchScript позволяет осуществлять гибкое кроссплатформенное развертывание. TorchScript, входящий в экосистему PyTorch , облегчает сериализацию моделей, которые затем могут быть выполнены в средах, не имеющих поддержки Python . Это делает его идеальным для развертывания моделей во встраиваемых системах, средах C++, мобильных приложениях и даже веб-браузерах. Экспорт в TorchScript обеспечивает эффективную работу и более широкую применимость твоих YOLOv8 -моделей на различных платформах.
Как я могу экспортировать модель YOLOv8 в TorchScript с помощью Ultralytics?
Чтобы экспортировать модель YOLOv8 в TorchScript, ты можешь использовать следующий пример кода:
Использование
from ultralytics import YOLO
# Load the YOLOv8 model
model = YOLO("yolov8n.pt")
# Export the model to TorchScript format
model.export(format="torchscript") # creates 'yolov8n.torchscript'
# Load the exported TorchScript model
torchscript_model = YOLO("yolov8n.torchscript")
# Run inference
results = torchscript_model("https://ultralytics.com/images/bus.jpg")
Более подробно о процессе экспорта читай в документации по экспорту на сайтеUltralytics .
Почему я должен использовать TorchScript для развертывания моделей YOLOv8 ?
Использование TorchScript для развертывания моделей YOLOv8 дает несколько преимуществ:
- Переносимость: Экспортированные модели могут работать в средах, не требующих Python, например в приложениях на C++, встраиваемых системах или мобильных устройствах.
- Оптимизация: TorchScript поддерживает статическое выполнение графов и компиляцию Just-In-Time (JIT), что позволяет оптимизировать производительность модели.
- Межъязыковая интеграция: модели TorchScript могут быть интегрированы в другие языки программирования, что повышает гибкость и расширяемость.
- Сериализация: Модели могут быть сериализованы, что позволяет загружать их и делать выводы независимо от платформы.
Чтобы узнать больше о развертывании, посети PyTorch Mobile Documentation, TorchServe Documentation и C++ Deployment Guide.
Каковы шаги по установке для экспорта моделей YOLOv8 в TorchScript?
Чтобы установить необходимый пакет для экспорта моделей YOLOv8 , используй следующую команду:
Подробные инструкции можно найти в руководстве по установкеUltralytics . Если во время установки возникнут какие-либо проблемы, обратись к руководству "Общие проблемы".
Как развернуть экспортированные модели TorchScript YOLOv8 ?
Экспортировав модели YOLOv8 в формат TorchScript , ты сможешь развернуть их на различных платформах:
- C++ API: Идеально подходит для малозатратных и высокоэффективных производственных сред.
- Мобильное развертывание: Используй PyTorch Mobile для приложений iOS и Android .
- Развертывание в облаке: Используй сервисы вроде TorchServe для масштабируемого развертывания на стороне сервера.
Изучи исчерпывающие рекомендации по развертыванию моделей в этих условиях, чтобы в полной мере использовать возможности TorchScript.