Перейти к содержимому

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

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

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

Почему тебе стоит экспортировать на TorchScript?

Torchscript Обзор

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

В этом процессе задействованы две техники: трассировка и скриптинг. Трассировка записывает операции во время выполнения модели, а скриптинг позволяет определять модели, используя подмножество Python. Эти техники гарантируют, что такие модели, как YOLOv8, смогут творить свою магию даже вне привычной среды Python.

TorchScript Скрипт и трассировка

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

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

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

TorchScript Характеристики

Вот ключевые особенности, которые делают 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 упрощает их использование в разных местах и помогает им работать быстрее и эффективнее. Это отлично подходит для тех, кто хочет более эффективно использовать модели глубокого обучения в реальных приложениях.

Установка

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

Установка

# Install the required package for YOLOv8
pip install ultralytics

Для получения подробных инструкций и лучших практик, связанных с процессом установки, ознакомься с нашим руководством по установке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")
# Export a YOLOv8n PyTorch model to TorchScript format
yolo export model=yolov8n.pt format=torchscript  # creates 'yolov8n.torchscript'

# Run inference with the exported model
yolo predict model=yolov8n.torchscript source='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")
# Export a YOLOv8n PyTorch model to TorchScript format
yolo export model=yolov8n.pt format=torchscript  # creates 'yolov8n.torchscript'

# Run inference with the exported model
yolo predict model=yolov8n.torchscript source='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 , используй следующую команду:

Установка

# Install the required package for YOLOv8
pip install ultralytics

Подробные инструкции можно найти в руководстве по установкеUltralytics . Если во время установки возникнут какие-либо проблемы, обратись к руководству "Общие проблемы".

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

Экспортировав модели YOLOv8 в формат TorchScript , ты сможешь развернуть их на различных платформах:

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

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



Создано 2024-03-01, Обновлено 2024-07-05
Авторы: glenn-jocher (6), abirami-vina (2)

Комментарии