YOLO Vision 2026:

Экспорт в TensorRT для моделей YOLO26#

Развертывание моделей computer vision в высокопроизводительных средах может потребовать формата, который максимизирует скорость и эффективность. Это особенно актуально при развертывании модели на GPU от NVIDIA.

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

TensorRT#

NVIDIA TensorRT optimization workflow

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

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

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

Движки TensorRT привязаны к конкретному оборудованию и среде выполнения.

TensorRT профилирует и настраивает движок на своем целевом GPU сборки. Выполняй сборку для архитектуры GPU развертывания и согласовывай среду выполнения TensorRT/CUDA; не рассматривай файл .engine как переносимый формат модели. Для периферийного развертывания Ultralytics Platform предлагает восемь вариантов целевых платформ Jetson с документированным статусом физической сборки и валидации, либо ты можешь выполнить экспорт локально на целевом устройстве.

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

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

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

  • Слияние слоев (Layer Fusion): Процесс оптимизации TensorRT включает слияние слоев, при котором несколько слоев neural network объединяются в одну операцию. Это снижает вычислительные затраты и увеличивает скорость инференса за счет минимизации обращений к памяти и вычислений.

TensorRT neural network layer fusion optimization

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

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

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

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

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

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

NVIDIA TensorRT optimization workflow

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

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

Поддерживаемые задачи#

Экспорт в TensorRT поддерживает все семь задач Ultralytics. Семантическая сегментация и оценка глубины доступны только в YOLO26, единственном семействе, в котором поставляются эти «головы».

ЗадачаYOLOv8YOLO11YOLO26
Detect
Segment
Semantic
Depth
Classify
Pose
OBB

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

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

Установка#

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

Установка
# Install the required package for YOLO26
pip install ultralytics

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

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

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

Формат TensorRT поддерживает режимы Export, Predict и Validate. Для инференса и валидации требуется GPU от NVIDIA. Экспортируй свою модель, а затем загрузи ее, чтобы запустить инференс или проверить ее точность.

Экспорт
from ultralytics import YOLO

# Load a YOLO26 model
model = YOLO("yolo26n.pt")

# Export the model to TensorRT format
model.export(format="engine")  # creates 'yolo26n.engine'
Предсказание
from ultralytics import YOLO

# Load the exported TensorRT model
model = YOLO("yolo26n.engine")

# Run inference
results = model("https://ultralytics.com/images/bus.jpg")
Валидация
from ultralytics import YOLO

# Load the exported TensorRT model
model = YOLO("yolo26n.engine")

# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")

Аргументы экспорта#

АргументТипПо умолчаниюОписание
formatstr'engine'Целевой формат для экспортированной модели, определяющий совместимость с различными средами развертывания.
imgszint или tuple640Желаемый размер изображения для входа модели. Может быть целым числом для квадратных изображений или кортежем (height, width) для конкретных размеров.
quantizeint или strNoneТочность квантования: 16 (FP16) или 8 (INT8/PTQ; требуется калибровка data/fraction); 32/не задано — это FP32. Заменяет устаревшие флаги half/int8.
dynamicboolFalseПозволяет использовать динамические размеры входных данных, повышая гибкость при обработке изображений с различными размерами.
simplifyboolTrueУпрощает граф модели с помощью onnxslim, что потенциально улучшает производительность и совместимость.
opsetintNoneУказывает версию ONNX opset для промежуточного графа ONNX. Если не задано, используется последняя поддерживаемая версия.
workspacefloat или NoneNoneЗадает максимальный размер рабочей области в ГиБ для оптимизаций TensorRT, балансируя между использованием памяти и производительностью; используй None для автоматического выделения памяти TensorRT вплоть до максимума устройства.
nmsboolFalseДобавляет подавление немаксимумов (NMS), что необходимо для точной и эффективной постобработки обнаружений.
batchint1Указывает размер пакета для пакетного инференса экспортированной модели или максимальное количество изображений, которые экспортированная модель будет обрабатывать одновременно в режиме predict.
datastrNoneПуть к YAML датасета, необходимый для квантования; для классификации вместо этого указывается каталог датасета или встроенное имя датасета. Если не указано с quantize=8, Ultralytics выбирает датасет калибровки по умолчанию для задачи модели.
fractionfloat, int или list1.0Калибровочное подмножество в виде соотношения, количества изображений или [train, val] соотношений/количеств; список ограничивает train или val, в то время как test остается полным.
devicestrNoneУказывает устройство для экспорта: GPU (device=0), DLA для NVIDIA Jetson (device=dla:0 или device=dla:1).
Совет

Пожалуйста, убедись, что используешь GPU с поддержкой CUDA при экспорте в TensorRT.

TensorRT 11.0 и DLA

TensorRT 11.0 не поддерживает DLA; используй TensorRT 10.x для device=dla:0 или device=dla:1 либо экспортируй GPU-движок TensorRT 11.0.

Дополнительную информацию о процессе экспорта см. на странице документации Ultralytics по экспорту.

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

Экспорт моделей Ultralytics YOLO с использованием TensorRT с precisoin INT8 выполняет квантование после обучения (PTQ). TensorRT использует калибровку для PTQ, которая измеряет распределение активаций внутри каждого тензора активации по мере того, как модель YOLO обрабатывает инференс на репрезентативных входных данных, а затем использует это распределение для оценки значений масштаба для каждого тензора. Каждый тензор активации, являющийся кандидатом на квантование, имеет связанный масштаб, который вычисляется в процессе калибровки.

Квантование в TensorRT 11

В TensorRT 11 были удалены неявное квантование и интерфейс IInt8Calibrator. Начиная с TensorRT 11 и новее, Ultralytics выполняет квантование INT8 с использованием явного квантования NVIDIA ModelOpt, которое добавляет узлы Q/DQ в граф ONNX перед созданием строго типизированного движка, а FP16 применяется с помощью преобразования смешанной точности ModelOpt AutoCast. Аргументы quantize=8, quantize=16 и data работают аналогичным образом; ModelOpt устанавливается автоматически при первом использовании. На TensorRT 7-10 вместо этого используется устаревший калибратор, описанный ниже.

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

Совет

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

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

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

  • workspace : Управляет размером (в ГиБ) выделяемой памяти устройства при конвертации весов модели.

    • Настрой значение workspace в соответствии со своими потребностями в калибровке и доступными ресурсами. Хотя большее значение workspace может увеличить время калибровки, оно позволяет TensorRT исследовать более широкий спектр стратегий оптимизации, потенциально повышая производительность и accuracy модели. И наоборот, меньшее значение workspace может сократить время калибровки, но ограничить стратегии оптимизации, влияя на качество квантованной модели.

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

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

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

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

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

Примечание

Использование маленьких батчей может привести к неточному масштабированию во время калибровки INT8. Это происходит потому, что процесс подстраивается на основе увиденных им данных. Маленькие батчи могут не захватить весь диапазон значений, что приведет к проблемам с конечной калибровкой. Использование большего batch size помогает обеспечить более репрезентативные результаты калибровки.

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

Пример
from ultralytics import YOLO

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

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

# Run inference
result = model.predict("https://ultralytics.com/images/bus.jpg")
  1. Экспорт с динамическими осями; это будет включено по умолчанию при экспорте с quantize=8, даже если не задано явно. Дополнительную информацию см. в разделе export arguments.
  2. Устанавливает максимальный размер пакета 8 для экспортированной модели и калибровки INT8.
  3. Выделяет 4 ГиБ памяти вместо выделения всего устройства для процесса конвертации.
  4. Использует COCO dataset для калибровки, в частности изображения, используемые для validation (всего 5 000).
Кэш калибровки

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

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

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

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

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

Примечание о скорости вывода

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

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

  • Снижение метрик оценки: Использование более низкой точности означает, что mAP, Precision, Recall или любая другая метрика, используемая для оценки производительности модели, скорее всего, окажутся несколько хуже. Сигмоидные слои сохраняются с более высокой точностью для поддержания калибровки оценок, но INT8 все же может смещать значения уверенности, поэтому выбирай рабочий порог по собственной F1-кривой модели INT8. См. раздел результатов производительности, чтобы сравнить различия в 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, которые включают 80 предобученных классов.

Примечание

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

PrecisionТест оценкисреднее
(мс)
мин | макс
(мс)
mAPval
50(B)
mAPval
50-95(B)
batchразмер
(пиксели)
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

Потребительские GPU#

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

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

Примечание

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

PrecisionТест оценкисреднее
(мс)
мин | макс
(мс)
mAPval
50(B)
mAPval
50-95(B)
batchразмер
(пиксели)
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

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

Производительность детектирования (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

PrecisionТест оценкисреднее
(мс)
мин | макс
(мс)
mAPval
50(B)
mAPval
50-95(B)
batchразмер
(пиксели)
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
Информация

Ознакомься с нашим руководством по быстрому старту для NVIDIA Jetson с Ultralytics YOLO, чтобы узнать больше об установке и настройке.

Информация

Ознакомься с нашим руководством по быстрому старту для NVIDIA DGX Spark с Ultralytics YOLO, чтобы узнать больше об установке и настройке.

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

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

Конфигурации экспорта

Подробную информацию о конфигурационных аргументах экспорта см. в разделе export mode.

from ultralytics import YOLO

model = YOLO("yolo26n.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, quantize=16)

# 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, quantize=8, data="coco8.yaml"
)
Цикл предсказания (Predict loop)

Дополнительную информацию см. в разделе predict mode.

import cv2

from ultralytics import YOLO

model = YOLO("yolo26n.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("yolo26n.engine")
results = model.val(
    data="data.yaml",  # COCO, ImageNet, or DOTAv1 for appropriate model task
    batch=1,
    imgsz=640,
    verbose=False,
    device="cuda",
)

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

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

Резюме#

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

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

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

FAQ#

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

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

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

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

    Для получения подробной информации посети руководство по установке YOLO26 и документацию по экспорту.

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

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

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

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

    1. Экспорт с INT8:

      from ultralytics import YOLO
      
      model = YOLO("yolo26n.pt")
      model.export(format="engine", batch=8, workspace=4, quantize=8, data="coco.yaml")
    2. Запуск вывода:

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

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

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

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

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

    • NVIDIA A100:

      • FP32 Вывод: ~0.52 мс / изображение
      • FP16 Вывод: ~0.34 мс / изображение
      • INT8 Вывод: ~0.28 мс / изображение
      • Небольшое снижение mAP при точности INT8, но значительное улучшение скорости.
    • Потребительские GPU (например, RTX 3080):

      • FP32 Вывод: ~1.06 мс / изображение
      • FP16 Вывод: ~0.62 мс / изображение
      • INT8 Вывод: ~0.52 мс / изображение

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

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

Комментарии