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

TensorRT Экспорт для моделей YOLOv8

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

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

TensorRT

TensorRT Обзор

TensorRTразработанный компанией NVIDIA, представляет собой продвинутый набор средств разработки программного обеспечения (SDK), предназначенный для высокоскоростного глубокого обучения выводам. Он хорошо подходит для приложений реального времени, таких как обнаружение объектов.

Этот инструментарий оптимизирует модели глубокого обучения для графических процессоров NVIDIA и обеспечивает более быструю и эффективную работу. Модели TensorRT подвергаются оптимизации TensorRT , которая включает такие техники, как слияние слоев, калибровка точности (INT8 и FP16), динамическое управление памятью tensor и автонастройка ядра. Преобразование моделей глубокого обучения в формат TensorRT позволяет разработчикам в полной мере реализовать потенциал графических процессоров NVIDIA.

TensorRT известен своей совместимостью с различными форматами моделей, включая TensorFlow, PyTorch и ONNX, предоставляя разработчикам гибкое решение для интеграции и оптимизации моделей из различных фреймворков. Такая универсальность позволяет эффективно развертывать модели в различных аппаратных и программных средах.

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

TensorRT Модели обладают целым рядом ключевых особенностей, которые способствуют их эффективности и результативности в высокоскоростных выводах глубокого обучения:

  • Точная калибровка: TensorRT поддерживает точную калибровку, позволяя настраивать модели под конкретные требования к точности. Сюда входит поддержка форматов пониженной точности, таких как INT8 и FP16, что позволяет еще больше увеличить скорость вычислений при сохранении приемлемого уровня точности.

  • Слияние слоев: Процесс оптимизации TensorRT включает в себя слияние слоев, когда несколько слоев нейронной сети объединяются в одну операцию. Это снижает вычислительные накладные расходы и повышает скорость вывода за счет минимизации доступа к памяти и вычислений.

TensorRT Слияние слоев

  • Динамическое управление памятью Tensor : TensorRT эффективно управляет использованием памяти tensor во время выводов, снижая накладные расходы памяти и оптимизируя ее распределение. Это приводит к более эффективному использованию памяти GPU.

  • Автоматическая настройка ядра: TensorRT применяет автоматическую настройку ядра, чтобы выбрать наиболее оптимизированное ядро GPU для каждого слоя модели. Этот адаптивный подход гарантирует, что модель полностью использует вычислительную мощь GPU.

Варианты развертывания в TensorRT

Прежде чем мы рассмотрим код для экспорта моделей YOLOv8 в формат TensorRT , давай разберемся, где обычно используются модели TensorRT .

TensorRT Предлагает несколько вариантов развертывания, и в каждом из них по-разному сочетаются простота интеграции, оптимизация производительности и гибкость:

  • Развертывание внутри TensorFlow: Этот метод интегрирует TensorRT в TensorFlow, позволяя оптимизированным моделям работать в привычной среде TensorFlow . Это полезно для моделей со смесью поддерживаемых и неподдерживаемых слоев, так как TF-TRT может эффективно обрабатывать их.

TensorRT Обзор

  • Автономный TensorRT Runtime API: Предлагает гранулярный контроль, идеально подходит для приложений, критичных к производительности. Он сложнее, но позволяет реализовывать неподдерживаемые операторы.

  • NVIDIA Triton Inference Server: Опция, которая поддерживает модели из различных фреймворков. Он особенно подходит для облачных или пограничных выводов и предоставляет такие возможности, как одновременное выполнение моделей и их анализ.

Экспорт моделей YOLOv8 в TensorRT

Ты можешь повысить эффективность выполнения и оптимизировать производительность, конвертируя модели YOLOv8 в формат TensorRT .

Установка

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

Установка

# Install the required package for YOLOv8
pip install ultralytics

Для получения подробных инструкций и лучших практик, связанных с процессом установки, ознакомься с нашим руководством по установкеYOLOv8 . Во время установки необходимых пакетов для YOLOv8, если у тебя возникнут какие-либо трудности, обратись к нашему руководству по общим проблемам, чтобы найти решения и советы.

Использование

Прежде чем погрузиться в инструкцию по использованию, обязательно ознакомься с ассортиментом моделейYOLOv8 , которые предлагает Ultralytics. Это поможет тебе выбрать наиболее подходящую модель под требования твоего проекта.

Использование

from ultralytics import YOLO

# Load the YOLOv8 model
model = YOLO('yolov8n.pt')

# Export the model to TensorRT format
model.export(format='engine')  # creates 'yolov8n.engine'

# Load the exported TensorRT model
tensorrt_model = YOLO('yolov8n.engine')

# Run inference
results = tensorrt_model('https://ultralytics.com/images/bus.jpg')
# Export a YOLOv8n PyTorch model to TensorRT format
yolo export model=yolov8n.pt format=engine  # creates 'yolov8n.engine''

# Run inference with the exported model
yolo predict model=yolov8n.engine source='https://ultralytics.com/images/bus.jpg'

Более подробно о процессе экспорта можно узнать на странице документацииUltralytics , посвященной экспорту.

Развертывание экспортированных YOLOv8 TensorRT моделей

Успешно экспортировав свои модели Ultralytics YOLOv8 в формат TensorRT , ты теперь готов к их развертыванию. Для получения подробных инструкций по развертыванию твоих TensorRT -моделей в различных условиях, взгляни на следующие ресурсы:

Резюме

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

Чтобы узнать подробности использования, загляни в официальную документациюTensorRT .

Если тебе интересно узнать о дополнительных интеграциях Ultralytics YOLOv8 , на странице нашего руководства по интеграции ты найдешь обширную подборку познавательных ресурсов.



Создано 2024-01-28, Обновлено 2024-01-28
Авторы: abirami-vina (1)

Комментарии