Перейти к содержанию

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

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

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

Зачем экспортировать в TorchScript?

Обзор Torchscript

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

Процесс включает в себя два метода: трассировку и написание скриптов. Трассировка записывает операции во время выполнения модели, а написание скриптов позволяет определять модели с использованием подмножества Python. Эти методы гарантируют, что такие модели, как YOLO11, по-прежнему могут творить чудеса даже за пределами своей обычной среды Python.

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

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

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

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

Возможности TorchScript

Вот ключевые особенности, которые делают 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.



📅 Создано 1 год назад ✏️ Обновлено 21 день назад

Комментарии