Ultralytics YOLO27:

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

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

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

TensorRT#

NVIDIA TensorRT optimization workflow

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

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

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

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

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

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

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

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

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

TensorRT neural network layer fusion optimization

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

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

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

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

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

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

NVIDIA TensorRT optimization workflow

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

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

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

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

Экспорт моделей 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'
Predict
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. Чекпоинт, обученный с помощью quantize=8, всегда экспортирует INT8 из диапазона, который чекпоинт содержит, без калибровки. Заменяет устаревшие флаги half/int8.
dynamicboolFalseРазрешает динамические размеры входных данных, повышая гибкость при работе с изображениями разных размеров.
simplifyboolTrueУпрощает граф модели с помощью onnxslim, что потенциально повышает производительность и совместимость.
opsetintNoneЗадает версию opset для промежуточного графа ONNX. Если параметр не задан, используется последняя поддерживаемая версия.
workspacefloat или NoneNoneЗадает максимальный размер рабочей области в ГиБ для оптимизации TensorRT, балансируя между использованием памяти и производительностью; используй None, чтобы TensorRT автоматически выделял память вплоть до максимального объема устройства.
nmsbool, необязательноNoneВыбери необработанный вывод (None, по умолчанию), встроенный NMS (True) или голову без NMS (False).
batchint1Задаёт размер пакета при инференсе экспортированной модели или максимальное количество изображений, которые экспортированная модель будет обрабатывать одновременно в режиме predict.
datastrNoneПуть к YAML-файлу датасета, необходимому для квантования; для классификации вместо этого указывается каталог датасета или имя встроенного датасета. Если параметр опущен при использовании quantize=8, Ultralytics выбирает датасет калибровки по умолчанию для задачи модели; чекпоинту, обученному с помощью quantize=8, датасет не требуется.
fractionfloat, int или list1.0Подмножество для калибровки в виде доли, количества изображений или значений [train, val, test] — долей/количеств. В списках из двух элементов test оставляет полный набор, а 0 пропускает его.
devicestrNoneЗадает устройство для экспорта: GPU (device=0) или DLA для NVIDIA Jetson (device=dla:0 или device=dla:1).
Совет

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

Совместимость с JetPack и DLA

TensorRT 11.2.1 не поддерживает JetPack, включая Thor; используй среду выполнения TensorRT 10.x, поддерживаемую твоим выпуском JetPack. Для device=dla:0 или device=dla:1 NVIDIA называет TensorRT 10.7 последним выпуском с поддержкой DLA. TensorRT 11.0, 11.1 и 11.2 не поддерживают DLA.

Подробнее о процессе экспорта см. на странице документации Ultralytics об экспорте.

Экспорт TensorRT с INT8-квантизацией#

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

Квантизация 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#

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

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

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

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

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

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

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

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

Примечание

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

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

Пример
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. Экспорт с динамическими осями; dynamic остается False, если не задано явно. Дополнительную информацию смотри в разделе аргументы экспорта.
  2. Задает максимальный размер пакета 8 для экспортированной модели и калибровки INT8.
  3. Выделяет 4 ГиБ памяти вместо выделения всего устройства для процесса конвертации.
  4. Использует набор данных COCO для калибровки, в частности изображения, использованные для валидации (всего 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 или любой другой метрики, используемой для оценки производительности модели, скорее всего, будут несколько хуже. Слои Sigmoid сохраняются с более высокой точностью для сохранения калибровки оценок, но 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размер
(пиксели)
FP32Predict0.520.51 | 0.568640
FP32COCOval0.520.520.371640
FP16Predict0.340.34 | 0.418640
FP16COCOval0.330.520.371640
INT8Predict0.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размер
(пиксели)
FP32Predict1.060.75 | 1.888640
FP32COCOval1.370.520.371640
FP16Predict0.620.75 | 1.138640
FP16COCOval0.850.520.371640
INT8Predict0.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размер
(пиксели)
FP32Predict6.116.10 | 6.298640
FP32COCOval6.170.520.371640
FP16Predict3.183.18 | 3.208640
FP16COCOval3.190.520.371640
INT8Predict2.302.29 | 2.358640
INT8COCOval2.320.460.321640
Информация

Подробнее о настройке и конфигурации см. в нашем кратком руководстве по NVIDIA Jetson и Ultralytics YOLO.

Информация

Подробнее о настройке и конфигурации см. в нашем кратком руководстве по NVIDIA DGX Spark и Ultralytics YOLO.

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

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

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

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

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

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

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, на нашей странице руководства по интеграциям представлен обширный выбор информативных ресурсов и материалов.

Часто задаваемые вопросы#

  • Чтобы преобразовать модели 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 и документации по экспорту.

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

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

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

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

    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 и наших отчетах с анализом производительности.

Комментарии