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

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

Deploying computer vision models in high-performance environments can require a format that maximizes speed and efficiency. This is especially true when you are deploying your model on NVIDIA GPUs.

By using the TensorRT export format, you can enhance your Ultralytics YOLOv8 models for swift and efficient inference on NVIDIA hardware. This guide will give you easy-to-follow steps for the conversion process and help you make the most of NVIDIA's advanced technology in your deep learning projects.

TensorRT

TensorRT Обзор

TensorRT, developed by NVIDIA, is an advanced software development kit (SDK) designed for high-speed deep learning inference. It's well-suited for real-time applications like object detection.

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

TensorRT is known for its compatibility with various model formats, including TensorFlow, PyTorch, and ONNX, providing developers with a flexible solution for integrating and optimizing models from different frameworks. This versatility enables efficient model deployment across diverse hardware and software environments.

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

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

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

  • Layer Fusion: The TensorRT optimization process includes layer fusion, where multiple layers of a neural network are combined into a single operation. This reduces computational overhead and improves inference speed by minimizing memory access and computation.

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

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

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

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

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

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

  • Deploying within TensorFlow: This method integrates TensorRT into TensorFlow, allowing optimized models to run in a familiar TensorFlow environment. It's useful for models with a mix of supported and unsupported layers, as TF-TRT can handle these efficiently.

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 , посвященной экспорту.

Экспорт TensorRT с квантованием INT8

Exporting Ultralytics YOLO models using TensorRT with INT8 precision executes post-training quantization (PTQ). TensorRT uses calibration for PTQ, which measures the distribution of activations within each activation tensor as the YOLO model processes inference on representative input data, and then uses that distribution to estimate scale values for each tensor. Each activation tensor that is a candidate for quantization has an associated scale that is deduced by a calibration process.

При обработке неявно квантованных сетей TensorRT использует INT8 оппортунистически, чтобы оптимизировать время выполнения слоя. Если слой работает быстрее в INT8 и имеет назначенные шкалы квантования на входах и выходах данных, то этому слою назначается ядро с точностью INT8, в противном случае TensorRT выбирает точность FP32 или FP16 для ядра, основываясь на том, что приводит к более быстрому времени выполнения для данного слоя.

Наконечник

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

Настройка экспорта INT8

Аргументы, предоставляемые при использовании экспорт для модели Ultralytics YOLO будет очень влияют на производительность экспортируемой модели. Их также нужно будет выбирать в зависимости от доступных ресурсов устройства, однако по умолчанию используются аргументы должен работает для большинства Дискретные графические процессоры Ampere (или более новые) NVIDIA. Используется следующий алгоритм калибровки "ENTROPY_CALIBRATION_2" И ты можешь прочитать более подробную информацию о доступных опциях в руководстве для разработчиков TensorRT .. Ultralytics тесты показали, что "ENTROPY_CALIBRATION_2" оказался наилучшим выбором, и экспортные поставки закреплены за этим алгоритмом.

  • workspace : Контролирует размер (в GiB) выделения памяти устройства при преобразовании весов модели.

    • Отрегулируй workspace значение в зависимости от твоих потребностей в калибровке и наличия ресурсов. В то время как большая workspace may increase calibration time, it allows TensorRT to explore a wider range of optimization tactics, potentially enhancing model performance and accuracy. Conversely, a smaller workspace может сократить время калибровки, но может ограничить стратегии оптимизации, что скажется на качестве квантованной модели.

    • По умолчанию workspace=4 (GiB), это значение может потребоваться увеличить, если калибровка аварийно завершается (выходит без предупреждения).

    • TensorRT сообщит UNSUPPORTED_STATE во время экспорта, если значение для workspace больше, чем объем памяти, доступный устройству, а значит, значение для workspace должен быть снижен.

    • Если workspace установлено на максимальное значение, и калибровка не проходит/проваливается, подумай о том, чтобы уменьшить значения для imgsz и batch чтобы снизить требования к памяти.

    • Помни, что калибровка для INT8 специфична для каждого устройства, поэтому заимствование "high-end" GPU для калибровки может привести к плохой работе при выполнении выводов на другом устройстве.

  • batch : Максимальный размер партии, который будет использоваться для вывода. Во время проведения анализа можно использовать и меньшие партии, но анализ не будет принимать партии больше указанной.

Примечание

Во время калибровки дважды нажми на кнопку batch будут использоваться указанные размеры. Использование небольших партий может привести к неточному масштабированию во время калибровки. Это происходит потому, что процесс настраивается на основе данных, которые он видит. Маленькие партии могут не охватить весь диапазон значений, что приведет к проблемам с окончательной калибровкой, поэтому batch size is doubled automatically. If no batch size is specified batch=1Калибровка будет выполняться при batch=1 * 2 чтобы уменьшить ошибки калибровочного масштабирования.

Эксперименты NVIDIA привели их к тому, что они рекомендуют использовать не менее 500 калибровочных изображений, которые являются репрезентативными данными для твоей модели, с калибровкой квантования INT8. Это рекомендация, а не жесткий требование, и Тебе придется поэкспериментировать с тем, что требуется для хорошей работы с твоим набором данных. Поскольку калибровочные данные требуются для калибровки INT8 с помощью TensorRT, обязательно используй data аргумент, когда int8=True для TensorRT и используй data="my_dataset.yaml"Для этого будут использованы изображения из Валидация для калибровки. Если значение не передано для data при экспорте на TensorRT с квантованием INT8, по умолчанию будет использоваться один из вариантов "Маленькие" наборы примеров, основанные на модельной задаче вместо того, чтобы выбросить ошибку.

Пример

from ultralytics import YOLO

model = YOLO("yolov8n.pt")
model.export(
    format="engine",
    dynamic=True,  # (1)!
    batch=8,  # (2)!
    workspace=4,  # (3)!
    int8=True,
    data="coco.yaml",  # (4)!
)

# Load the exported TensorRT INT8 model
model = YOLO("yolov8n.engine", task="detect")

# Run inference
result = model.predict("https://ultralytics.com/images/bus.jpg")
  1. Экспорт с динамическими осями, это будет включено по умолчанию при экспорте с int8=True даже если он не задан явно. Смотри аргументы для экспорта за дополнительной информацией.
  2. Устанавливает максимальный размер партии 8 для экспортируемой модели, которая калибруется с помощью batch = 2 * 8 чтобы избежать ошибок масштабирования при калибровке.
  3. Выделяет 4 Гигабайта памяти вместо того, чтобы выделять все устройство под процесс конвертации.
  4. Для калибровки используется набор данных COCO, а именно изображения, использованные для проверки (всего 5 000).
# Export a YOLOv8n PyTorch model to TensorRT format with INT8 quantization
yolo export model=yolov8n.pt format=engine batch=8 workspace=4 int8=True data=coco.yaml  # creates 'yolov8n.engine''

# Run inference with the exported TensorRT quantized model
yolo predict model=yolov8n.engine source='https://ultralytics.com/images/bus.jpg'
Кэш калибровки

TensorRT сгенерирует калибровку .cache которые можно использовать повторно, чтобы ускорить экспорт весов будущей модели, используя те же данные, но это может привести к плохой калибровке, если данные сильно отличаются или если batch значение резко меняется. В таких обстоятельствах существующие .cache следует переименовать и переместить в другую директорию или удалить совсем.

Преимущества использования YOLO с TensorRT INT8

  • Уменьшение размера модели: Квантование с FP32 на INT8 позволяет уменьшить размер модели в 4 раза (на диске или в памяти), что приводит к ускорению загрузки, снижению требований к хранению и уменьшению занимаемой памяти при развертывании модели.

  • Более низкое энергопотребление: Операции пониженной точности для INT8, экспортируемые YOLO -моделями, могут потреблять меньше энергии по сравнению с FP32-моделями, особенно для устройств с питанием от батарей.

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

Заметка о скорости умозаключений

Можно ожидать, что первые несколько вызовов вычислений с моделью, экспортированной в TensorRT INT8, будут иметь большее, чем обычно, время препроцессинга, вычислений и/или постпроцессинга. Это также может произойти при изменении imgsz во время умозаключений, особенно когда imgsz не совпадает с тем, что было указано во время экспорта (export imgsz установлен как TensorRT "оптимальный" профиль).

Недостатки использования YOLO с TensorRT INT8

  • Снижение показателей оценки: Использование более низкой точности означает, что mAP, Precision, Recall или любой Другая метрика, используемая для оценки эффективности модели скорее всего, будет несколько хуже. См. Раздел результатов производительности чтобы сравнить различия в mAP50 и mAP50-95 при экспорте с INT8 на небольшой выборке различных устройств.

  • Увеличение времени разработки: Поиск "оптимальных" настроек калибровки INT8 для набора данных и устройства может потребовать значительного количества тестирования.

  • Аппаратная зависимость: Калибровка и прирост производительности могут сильно зависеть от аппаратного обеспечения, а весовые коэффициенты моделей менее переносимы.

Ultralytics YOLO TensorRT Показатели экспорта

NVIDIA A100

Производительность

Проверено на Ubuntu 22.04.3 LTS, python 3.10.12, ultralytics==8.2.4, tensorrt==8.6.1.post1

Примеры использования этих моделей, обученных на COCO, см. в Detection Docs, где приведены 80 предварительно обученных классов.

Примечание

Время вывода показано для mean, min (самый быстрый), и max (самый медленный) для каждого теста с использованием предварительно обученных весов yolov8n.engine

ТочностьОценочный тестСреднее
(мс)
min | max
(ms)
mAPval
50(B)
mAPval
50-95(B)
batchРазмер
(pixels)
FP32Предсказывай0.520.51 | 0.568640
FP32COCOval0.520.520.371640
FP16Предсказывай0.340.34 | 0.418640
FP16COCOval0.330.520.371640
INT8Предсказывай0.280.27 | 0.318640
INT8COCOval0.290.470.331640

Примеры использования этих моделей, обученных на COCO, см. в Segmentation Docs, где приведены 80 предварительно обученных классов.

Примечание

Время вывода показано для mean, min (самый быстрый), и max (самый медленный) для каждого теста с использованием предварительно обученных весов yolov8n-seg.engine

ТочностьОценочный тестСреднее
(мс)
min | max
(ms)
mAPval
50(B)
mAPval
50-95(B)
mAPval
50(M)
mAPval
50-95(M)
batchРазмер
(pixels)
FP32Предсказывай0.620.61 | 0.688640
FP32COCOval0.630.520.360.490.311640
FP16Предсказывай0.400.39 | 0.448640
FP16COCOval0.430.520.360.490.301640
INT8Предсказывай0.340.33 | 0.378640
INT8COCOval0.360.460.320.430.271640

Примеры использования этих моделей, обученных на ImageNet и включающих 1000 предварительно обученных классов, смотри в Classification Docs.

Примечание

Время вывода показано для mean, min (самый быстрый), и max (самый медленный) для каждого теста с использованием предварительно обученных весов yolov8n-cls.engine

ТочностьОценочный тестСреднее
(мс)
min | max
(ms)
топ-1топ-5batchРазмер
(pixels)
FP32Предсказывай0.260.25 | 0.288640
FP32ImageNetval0.260.350.611640
FP16Предсказывай0.180.17 | 0.198640
FP16ImageNetval0.180.350.611640
INT8Предсказывай0.160.15 | 0.578640
INT8ImageNetval0.150.320.591640

Примеры использования этих моделей, обученных на COCO, см. в Pose Estimation Docs, они включают 1 предварительно обученный класс "человек".

Примечание

Время вывода показано для mean, min (самый быстрый), и max (самый медленный) для каждого теста с использованием предварительно обученных весов yolov8n-pose.engine

ТочностьОценочный тестСреднее
(мс)
min | max
(ms)
mAPval
50(B)
mAPval
50-95(B)
mAPval
50(P)
mAPval
50-95(P)
batchРазмер
(pixels)
FP32Предсказывай0.540.53 | 0.588640
FP32COCOval0.550.910.690.800.511640
FP16Предсказывай0.370.35 | 0.418640
FP16COCOval0.360.910.690.800.511640
INT8Предсказывай0.290.28 | 0.338640
INT8COCOval0.300.900.680.780.471640

Примеры использования этих моделей, обученных на DOTAv1 и включающих 15 предварительно обученных классов, смотри в Oriented Detection Docs.

Примечание

Время вывода показано для mean, min (самый быстрый), и max (самый медленный) для каждого теста с использованием предварительно обученных весов yolov8n-obb.engine

ТочностьОценочный тестСреднее
(мс)
min | max
(ms)
mAPval
50(B)
mAPval
50-95(B)
batchРазмер
(pixels)
FP32Предсказывай0.520.51 | 0.598640
FP32DOTAv1val0.760.500.361640
FP16Предсказывай0.340.33 | 0.428640
FP16DOTAv1val0.590.500.361640
INT8Предсказывай0.290.28 | 0.338640
INT8DOTAv1val0.320.450.321640

Потребительские графические процессоры

Производительность обнаружения (COCO)

Проверено на Windows 10.0.19045, python 3.10.9, ultralytics==8.2.4, tensorrt==10.0.0b6

Примечание

Время вывода показано для mean, min (самый быстрый), и max (самый медленный) для каждого теста с использованием предварительно обученных весов yolov8n.engine

ТочностьОценочный тестСреднее
(мс)
min | max
(ms)
mAPval
50(B)
mAPval
50-95(B)
batchРазмер
(pixels)
FP32Предсказывай1.060.75 | 1.888640
FP32COCOval1.370.520.371640
FP16Предсказывай0.620.75 | 1.138640
FP16COCOval0.850.520.371640
INT8Предсказывай0.520.38 | 1.008640
INT8COCOval0.740.470.331640

Проверено на Windows 10.0.22631, python 3.11.9, ultralytics==8.2.4, tensorrt==10.0.1

Примечание

Время вывода показано для mean, min (самый быстрый), и max (самый медленный) для каждого теста с использованием предварительно обученных весов yolov8n.engine

ТочностьОценочный тестСреднее
(мс)
min | max
(ms)
mAPval
50(B)
mAPval
50-95(B)
batchРазмер
(pixels)
FP32Предсказывай1.761.69 | 1.878640
FP32COCOval1.940.520.371640
FP16Предсказывай0.860.75 | 1.008640
FP16COCOval1.430.520.371640
INT8Предсказывай0.800.75 | 1.008640
INT8COCOval1.350.470.331640

Проверено на Pop!_OS 22.04 LTS, python 3.10.12, ultralytics==8.2.4, tensorrt==8.6.1.post1

Примечание

Время вывода показано для mean, min (самый быстрый), и max (самый медленный) для каждого теста с использованием предварительно обученных весов yolov8n.engine

ТочностьОценочный тестСреднее
(мс)
min | max
(ms)
mAPval
50(B)
mAPval
50-95(B)
batchРазмер
(pixels)
FP32Предсказывай2.842.84 | 2.858640
FP32COCOval2.940.520.371640
FP16Предсказывай1.091.09 | 1.108640
FP16COCOval1.200.520.371640
INT8Предсказывай0.750.74 | 0.758640
INT8COCOval0.760.470.331640

Встраиваемые устройства

Производительность обнаружения (COCO)

Проверено с JetPack 6.0 (L4T 36.3) Ubuntu 22.04.4 LTS, python 3.10.12, ultralytics==8.2.16, tensorrt==10.0.1

Примечание

Время вывода показано для mean, min (самый быстрый), и max (самый медленный) для каждого теста с использованием предварительно обученных весов yolov8n.engine

ТочностьОценочный тестСреднее
(мс)
min | max
(ms)
mAPval
50(B)
mAPval
50-95(B)
batchРазмер
(pixels)
FP32Предсказывай6.116.10 | 6.298640
FP32COCOval6.170.520.371640
FP16Предсказывай3.183.18 | 3.208640
FP16COCOval3.190.520.371640
INT8Предсказывай2.302.29 | 2.358640
INT8COCOval2.320.460.321640

Методы оценки

Разверни разделы ниже, чтобы узнать, как эти модели экспортировались и тестировались.

Экспорт конфигураций

Подробнее об аргументах экспортной конфигурации смотри в разделе " Режим экспорта ".

from ultralytics import YOLO

model = YOLO("yolov8n.pt")

# TensorRT FP32
out = model.export(format="engine", imgsz=640, dynamic=True, verbose=False, batch=8, workspace=2)

# TensorRT FP16
out = model.export(format="engine", imgsz=640, dynamic=True, verbose=False, batch=8, workspace=2, half=True)

# TensorRT INT8 with calibration `data` (i.e. COCO, ImageNet, or DOTAv1 for appropriate model task)
out = model.export(
    format="engine", imgsz=640, dynamic=True, verbose=False, batch=8, workspace=2, int8=True, data="coco8.yaml"
)
Предсказанная петля

Дополнительную информацию смотри в разделе " Режим предсказаний ".

import cv2

from ultralytics import YOLO

model = YOLO("yolov8n.engine")
img = cv2.imread("path/to/image.jpg")

for _ in range(100):
    result = model.predict(
        [img] * 8,  # batch=8 of the same image
        verbose=False,
        device="cuda",
    )
Конфигурация проверки

Смотри val режим чтобы узнать больше об аргументах конфигурации валидации.

from ultralytics import YOLO

model = YOLO("yolov8n.engine")
results = model.val(
    data="data.yaml",  # COCO, ImageNet, or DOTAv1 for appropriate model task
    batch=1,
    imgsz=640,
    verbose=False,
    device="cuda",
)

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

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

Резюме

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

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

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

ВОПРОСЫ И ОТВЕТЫ

Как конвертировать модели YOLOv8 в формат TensorRT ?

Чтобы преобразовать твои Ultralytics YOLOv8 модели в формат TensorRT для оптимизированного NVIDIA GPU вывода, выполни следующие шаги:

  1. Установи необходимый пакет:

    pip install ultralytics
    
  2. Экспортируй свою модель YOLOv8 :

    from ultralytics import YOLO
    
    model = YOLO("yolov8n.pt")
    model.export(format="engine")  # creates 'yolov8n.engine'
    
    # Run inference
    model = YOLO("yolov8n.engine")
    results = model("https://ultralytics.com/images/bus.jpg")
    

Более подробную информацию ты найдешь в руководстве по установкеYOLOv8 и в документации по экспорту.

В чем преимущества использования TensorRT для моделей YOLOv8 ?

Использование TensorRT для оптимизации моделей YOLOv8 дает несколько преимуществ:

  • Более высокая скорость вывода: TensorRT оптимизирует слои модели и использует прецизионную калибровку (INT8 и FP16), чтобы ускорить вывод без существенного ущерба для точности.
  • Эффективность памяти: TensorRT управляет памятью tensor динамически, снижая накладные расходы и улучшая использование памяти GPU .
  • Слияние слоев: Объединяет несколько слоев в одну операцию, снижая вычислительную сложность.
  • Автоматическая настройка ядра: Автоматически подбирает оптимизированные ядра GPU для каждого слоя модели, обеспечивая максимальную производительность.

Для получения дополнительной информации изучи подробные характеристики TensorRT здесь и прочитай наш обзорный разделTensorRT .

Могу ли я использовать квантование INT8 с TensorRT для моделей YOLOv8 ?

Да, ты можешь экспортировать модели YOLOv8 , используя TensorRT с квантованием INT8. Этот процесс включает в себя посттренировочное квантование (PTQ) и калибровку:

  1. Экспортируй с помощью INT8:

    from ultralytics import YOLO
    
    model = YOLO("yolov8n.pt")
    model.export(format="engine", batch=8, workspace=4, int8=True, data="coco.yaml")
    
  2. Выполняй умозаключения:

    from ultralytics import YOLO
    
    model = YOLO("yolov8n.engine", task="detect")
    result = model.predict("https://ultralytics.com/images/bus.jpg")
    

За более подробной информацией обратись к разделу "Экспорт TensorRT с квантованием INT8".

Как развернуть YOLOv8 TensorRT модели на NVIDIA Triton Inference Server?

Развернуть YOLOv8 TensorRT модели на NVIDIA Triton Inference Server можно с помощью следующих ресурсов:

Эти руководства помогут тебе эффективно интегрировать модели YOLOv8 в различные среды развертывания.

Какие улучшения производительности наблюдаются при экспорте моделей с YOLOv8 в TensorRT?

Увеличение производительности с помощью TensorRT может варьироваться в зависимости от используемого оборудования. Вот несколько типичных бенчмарков:

  • NVIDIA A100:

    • FP32 Inference: ~0,52 мс / изображение
    • FP16 Inference: ~0,34 мс / изображение
    • INT8 Inference: ~0,28 мс / изображение
    • Небольшое уменьшение mAP с точностью INT8, но значительное улучшение скорости.
  • Потребительские графические процессоры (например, RTX 3080):

    • FP32 Inference: ~1,06 мс / изображение
    • FP16 Inference: ~0,62 мс / изображение
    • INT8 Inference: ~0,52 мс / изображение

Подробные бенчмарки производительности для различных аппаратных конфигураций можно найти в разделе "Производительность".

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

📅 Created 8 months ago ✏️ Updated 19 days ago

Комментарии