Link to this sectionЭкспорт в TensorRT для моделей YOLO26#
Развертывание моделей computer vision в высокопроизводительных средах может потребовать формата, который максимизирует скорость и эффективность. Это особенно актуально при развертывании модели на графических процессорах NVIDIA.
Используя формат экспорта TensorRT, ты можешь оптимизировать свои модели Ultralytics YOLO26 для быстрого и эффективного вывода на оборудовании NVIDIA. Это руководство даст тебе простые шаги для процесса конвертации и поможет максимально эффективно использовать передовые технологии NVIDIA в твоих проектах deep learning.
Link to this sectionTensorRT#
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 в разнообразных аппаратных и программных средах.
Link to this sectionКлючевые особенности моделей TensorRT#
Модели TensorRT предлагают ряд ключевых особенностей, которые способствуют их эффективности и результативности при высокоскоростном выводе глубокого обучения:
-
Калибровка точности: TensorRT поддерживает калибровку точности, позволяя тонко настраивать модели под конкретные требования к точности. Сюда входит поддержка форматов с пониженной точностью, таких как INT8 и FP16, что может дополнительно увеличить скорость вывода при сохранении приемлемого уровня точности.
-
Слияние слоев (Layer Fusion): Процесс оптимизации TensorRT включает слияние слоев, при котором несколько слоев neural network объединяются в одну операцию. Это снижает вычислительные затраты и повышает скорость вывода за счет минимизации обращений к памяти и вычислений.
-
Динамическое управление памятью тензоров: TensorRT эффективно управляет использованием памяти тензоров во время вывода, уменьшая накладные расходы памяти и оптимизируя ее выделение. Это приводит к более эффективному использованию видеопамяти GPU.
-
Автоматическая настройка ядер (Automatic Kernel Tuning): TensorRT применяет автоматическую настройку ядер для выбора наиболее оптимизированного ядра GPU для каждого слоя модели. Этот адаптивный подход гарантирует, что модель максимально эффективно использует вычислительную мощность GPU.
Link to this sectionВарианты развертывания в TensorRT#
Прежде чем мы рассмотрим код для экспорта моделей YOLO26 в формат TensorRT, давай разберемся, где обычно используются модели TensorRT.
TensorRT предлагает несколько вариантов развертывания, и каждый из них по-своему балансирует между простотой интеграции, оптимизацией производительности и гибкостью:
- Развертывание в TensorFlow: Этот метод интегрирует TensorRT в TensorFlow, позволяя запускать оптимизированные модели в привычной среде TensorFlow. Это полезно для моделей с сочетанием поддерживаемых и неподдерживаемых слоев, так как TF-TRT может эффективно с ними справляться.
-
Автономный API среды выполнения TensorRT (Standalone TensorRT Runtime API): Предлагает гранулярный контроль, идеально подходит для критически важных для производительности приложений. Это более сложный путь, но он позволяет реализовать нестандартные операторы.
-
NVIDIA Triton Inference Server: Вариант, поддерживающий модели из различных фреймворков. Особенно подходит для облачного вывода или вывода на периферии (edge), предоставляя такие функции, как параллельное выполнение моделей и их анализ.
Link to this sectionЭкспорт моделей YOLO26 в TensorRT#
Ты можешь повысить эффективность выполнения и оптимизировать производительность, преобразовав модели YOLO26 в формат TensorRT.
Link to this sectionУстановка#
Чтобы установить необходимый пакет, выполни:
# Install the required package for YOLO26
pip install ultralyticsДля получения подробных инструкций и лучших практик, связанных с процессом установки, изучи наше руководство по установке YOLO26. Если при установке необходимых пакетов для YOLO26 у тебя возникнут трудности, обратись к нашему руководству по распространенным проблемам за решениями и советами.
Link to this sectionИспользование#
Прежде чем переходить к инструкциям по использованию, ознакомься с ассортиментом моделей 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")Link to this sectionАргументы экспорта#
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
format | str | 'engine' | Целевой формат для экспортированной модели, определяющий совместимость с различными средами развертывания. |
imgsz | int или tuple | 640 | Желаемый размер изображения для входных данных модели. Может быть целым числом для квадратных изображений или кортежем (height, width) для конкретных размеров. |
half | bool | False | Включает квантование FP16 (половинная точность), уменьшая размер модели и потенциально ускоряя вывод на поддерживаемом оборудовании. |
int8 | bool | False | Активирует квантование INT8, дополнительно сжимая модель и ускоряя вывод с минимальной потерей точности, в первую очередь для периферийных устройств. |
dynamic | bool | False | Позволяет использовать динамические размеры входных данных, повышая гибкость при обработке изображений с различными размерами. |
simplify | bool | True | Упрощает граф модели с помощью onnxslim, потенциально улучшая производительность и совместимость. |
workspace | float или None | None | Устанавливает максимальный размер рабочего пространства (workspace) в ГиБ для оптимизаций TensorRT, балансируя использование памяти и производительность; используй None для автовыделения памяти со стороны TensorRT до максимума устройства. |
nms | bool | False | Добавляет подавление немаксимумов (NMS), что необходимо для точной и эффективной постобработки обнаружений. |
batch | int | 1 | Задает размер пакета (batch) для вывода экспортированной модели или максимальное количество изображений, которые модель будет обрабатывать одновременно в режиме predict. |
data | str | 'coco8.yaml' | Путь к файлу конфигурации датасета (по умолчанию: coco8.yaml), что важно для квантования. |
fraction | float | 1.0 | Указывает часть датасета, которую нужно использовать для калибровки квантования INT8. Позволяет выполнять калибровку на подмножестве полного датасета, что полезно для экспериментов или при ограниченных ресурсах. Если не указано при включенном INT8, будет использован весь датасет. |
device | str | None | Указывает устройство для экспорта: GPU (device=0), DLA для NVIDIA Jetson (device=dla:0 или device=dla:1). |
Пожалуйста, убедись, что используешь GPU с поддержкой CUDA при экспорте в TensorRT.
TensorRT 11.0 не поддерживает DLA; используй TensorRT 10.x для device=dla:0 или device=dla:1, или экспортируй GPU-движок TensorRT 11.0.
Для получения дополнительной информации о процессе экспорта посети страницу документации Ultralytics по экспорту.
Link to this sectionЭкспорт TensorRT с квантованием INT8#
Экспорт моделей Ultralytics YOLO с использованием TensorRT с precision INT8 выполняет пост-тренировочное квантование (PTQ). TensorRT использует калибровку для PTQ, которая измеряет распределение активаций внутри каждого тензора активаций, пока модель YOLO обрабатывает вывод на репрезентативных входных данных, а затем использует это распределение для оценки значений масштаба для каждого тензора. Каждый тензор активации, являющийся кандидатом на квантование, имеет связанный с ним масштаб, выведенный в процессе калибровки.
В TensorRT 11 было удалено неявное квантование и интерфейс IInt8Calibrator. В TensorRT 11 и новее Ultralytics выполняет квантование INT8 с помощью явного квантования NVIDIA ModelOpt, которое вставляет узлы Q/DQ в граф ONNX перед созданием строго типизированного движка, а FP16 применяется с использованием преобразования смешанной точности ModelOpt AutoCast. Аргументы int8=True, half=True и data работают так же; ModelOpt устанавливается автоматически при первом использовании. В TensorRT 7-10 вместо этого используется описанный ниже устаревший калибратор.
При обработке неявно квантованных сетей TensorRT оппортунистически использует INT8 для оптимизации времени выполнения слоев. Если слой работает быстрее в INT8 и имеет назначенные шкалы квантования на своих входных и выходных данных, то для этого слоя назначается ядро с точностью INT8, в противном случае TensorRT выбирает для ядра точность FP32 или FP16, основываясь на том, что дает меньшее время выполнения для этого слоя.
Крайне важно убедиться, что для экспорта с точностью INT8 используется то же самое устройство, которое будет использовать веса модели TensorRT для развертывания, так как результаты калибровки могут различаться на разных устройствах.
Link to this sectionНастройка экспорта 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, когда int8=True для 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)!
int8=True,
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")- Экспорт с динамическими осями, эта функция будет включена по умолчанию при экспорте с
int8=True, даже если она не задана явно. См. аргументы экспорта для дополнительной информации. - Устанавливает максимальный размер пакета 8 для экспортированной модели и калибровки INT8.
- Выделяет 4 ГиБ памяти вместо выделения всего устройства для процесса конвертации.
- Использует набор данных COCO для калибровки, в частности изображения, используемые для validation (всего 5 000).
Кэш калибровки
TensorRT создаст .cache калибровки, который можно повторно использовать для ускорения экспорта будущих весов моделей с использованием тех же данных, но это может привести к плохой калибровке, если данные сильно отличаются или если значение batch сильно изменено. В таких обстоятельствах существующий .cache следует переименовать и переместить в другой каталог или полностью удалить.
Link to this sectionПреимущества использования YOLO с TensorRT INT8#
-
Уменьшенный размер модели: Квантование из FP32 в INT8 может уменьшить размер модели в 4 раза (на диске или в памяти), что приводит к более быстрой загрузке, меньшим требованиям к хранилищу и снижению использования памяти при развертывании модели.
-
Сниженное энергопотребление: Операции с пониженной точностью для экспортированных моделей YOLO INT8 могут потреблять меньше энергии по сравнению с моделями FP32, что особенно актуально для устройств с питанием от батареи.
-
Улучшенная скорость вывода: TensorRT оптимизирует модель под целевое оборудование, что потенциально ведет к более высокой скорости вывода на GPU, встроенных устройствах и ускорителях.
Примечание о скорости вывода
Первые несколько вызовов вывода с моделью, экспортированной в TensorRT INT8, могут иметь более длительное, чем обычно, время предварительной обработки, вывода и/или постобработки. Это также может происходить при изменении imgsz во время вывода, особенно когда imgsz не совпадает с тем, что было указано при экспорте (экспортный imgsz устанавливается как "оптимальный" профиль TensorRT).
Link to this sectionНедостатки использования YOLO с TensorRT INT8#
-
Снижение показателей оценки: Использование более низкой точности будет означать, что
mAP,Precision,Recallили любая другая метрика, используемая для оценки производительности модели, скорее всего, будет несколько хуже. См. раздел Результаты производительности для сравнения различий вmAP50иmAP50-95при экспорте с INT8 на небольшом наборе различных устройств. -
Увеличенное время разработки: Поиск "оптимальных" настроек для калибровки INT8 для набора данных и устройства может потребовать значительного объема тестирования.
-
Аппаратная зависимость: Калибровка и прирост производительности могут сильно зависеть от оборудования, а веса моделей менее переносимы.
Link to this sectionПроизводительность экспорта Ultralytics YOLO в TensorRT#
Link to this sectionNVIDIA 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.52 | 0.51 | 0.56 | 8 | 640 | ||
| FP32 | COCOval | 0.52 | 0.52 | 0.37 | 1 | 640 | |
| FP16 | Предсказание | 0.34 | 0.34 | 0.41 | 8 | 640 | ||
| FP16 | COCOval | 0.33 | 0.52 | 0.37 | 1 | 640 | |
| INT8 | Предсказание | 0.28 | 0.27 | 0.31 | 8 | 640 | ||
| INT8 | COCOval | 0.29 | 0.47 | 0.33 | 1 | 640 |
Link to this sectionПотребительские GPU#
Протестировано на 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.06 | 0.75 | 1.88 | 8 | 640 | ||
| FP32 | COCOval | 1.37 | 0.52 | 0.37 | 1 | 640 | |
| FP16 | Предсказание | 0.62 | 0.75 | 1.13 | 8 | 640 | ||
| FP16 | COCOval | 0.85 | 0.52 | 0.37 | 1 | 640 | |
| INT8 | Предсказание | 0.52 | 0.38 | 1.00 | 8 | 640 | ||
| INT8 | COCOval | 0.74 | 0.47 | 0.33 | 1 | 640 |
Link to this sectionВстраиваемые устройства#
Протестировано на 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.11 | 6.10 | 6.29 | 8 | 640 | ||
| FP32 | COCOval | 6.17 | 0.52 | 0.37 | 1 | 640 | |
| FP16 | Предсказание | 3.18 | 3.18 | 3.20 | 8 | 640 | ||
| FP16 | COCOval | 3.19 | 0.52 | 0.37 | 1 | 640 | |
| INT8 | Предсказание | 2.30 | 2.29 | 2.35 | 8 | 640 | ||
| INT8 | COCOval | 2.32 | 0.46 | 0.32 | 1 | 640 |
Ознакомься с нашим руководством по быстрому старту NVIDIA Jetson с Ultralytics YOLO, чтобы узнать больше о настройке и конфигурации.
Ознакомься с нашим руководством по быстрому старту NVIDIA DGX Spark с Ultralytics YOLO, чтобы узнать больше о настройке и конфигурации.
Link to this sectionМетоды оценки#
Разверни разделы ниже для получения информации о том, как эти модели были экспортированы и протестированы.
Конфигурации экспорта
См. режим экспорта для получения подробной информации об аргументах конфигурации экспорта.
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, 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"
)Цикл предсказания (Predict loop)
См. режим предсказания для дополнительной информации.
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",
)Link to this sectionРазвертывание экспортированных моделей YOLO26 TensorRT#
Успешно экспортировав свои модели Ultralytics YOLO26 в формат TensorRT, ты готов к их развертыванию. Для получения подробных инструкций по развертыванию твоих моделей TensorRT в различных окружениях, изучи следующие ресурсы:
-
Развертывание Ultralytics с сервером Triton: Наше руководство о том, как использовать NVIDIA Triton Inference (ранее TensorRT Inference) Server специально для работы с моделями Ultralytics YOLO.
-
Развертывание глубоких нейронных сетей с NVIDIA TensorRT: Эта статья объясняет, как использовать NVIDIA TensorRT для эффективного развертывания глубоких нейронных сетей на платформах с поддержкой GPU.
-
Сквозной ИИ для ПК на базе NVIDIA: Развертывание NVIDIA TensorRT: В этой записи блога объясняется использование NVIDIA TensorRT для оптимизации и развертывания моделей ИИ на ПК с GPU NVIDIA.
-
Репозиторий GitHub для NVIDIA TensorRT:: Это официальный репозиторий GitHub, содержащий исходный код и документацию для NVIDIA TensorRT.
Link to this sectionРезюме#
В этом руководстве мы сосредоточились на конвертации моделей Ultralytics YOLO26 в формат моделей NVIDIA TensorRT. Этот этап конвертации критически важен для повышения эффективности и скорости работы моделей YOLO26, делая их более производительными и подходящими для различных сред развертывания.
Для получения дополнительной информации о деталях использования, загляни в официальную документацию TensorRT.
Если тебе интересны другие интеграции Ultralytics YOLO26, наша страница руководств по интеграции предоставляет обширный выбор полезных ресурсов и идей.
Link to this sectionFAQ#
Link to this sectionКак конвертировать модели YOLO26 в формат TensorRT?#
Чтобы конвертировать свои модели Ultralytics YOLO26 в формат TensorRT для оптимизированного вывода на GPU NVIDIA, выполни следующие шаги:
-
Установи необходимый пакет:
pip install ultralytics -
Экспортируй свою модель 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 и документации по экспорту.
Link to this sectionВ чем преимущества использования TensorRT для моделей YOLO26?#
Использование TensorRT для оптимизации моделей YOLO26 дает несколько преимуществ:
- Более высокая скорость вывода: TensorRT оптимизирует слои модели и использует калибровку точности (INT8 и FP16) для ускорения вывода без существенной потери точности.
- Эффективность памяти: TensorRT динамически управляет памятью тензоров, снижая накладные расходы и улучшая использование видеопамяти GPU.
- Объединение слоев (Layer Fusion): объединяет несколько слоев в единые операции, снижая вычислительную сложность.
- Автоматическая настройка ядер (Kernel Auto-Tuning): автоматически выбирает оптимизированные ядра GPU для каждого слоя модели, обеспечивая максимальную производительность.
Чтобы узнать больше, изучи официальную документацию TensorRT от NVIDIA и наш подробный обзор TensorRT.
Link to this sectionМогу ли я использовать квантование INT8 с TensorRT для моделей YOLO26?#
Да, ты можешь экспортировать модели YOLO26, используя TensorRT с квантованием INT8. Этот процесс включает в себя посттренировочное квантование (PTQ) и калибровку:
-
Экспорт с INT8:
from ultralytics import YOLO model = YOLO("yolo26n.pt") model.export(format="engine", batch=8, workspace=4, int8=True, data="coco.yaml") -
Запуск вывода:
from ultralytics import YOLO model = YOLO("yolo26n.engine", task="detect") result = model.predict("https://ultralytics.com/images/bus.jpg")
Более подробную информацию см. в разделе об экспорте в TensorRT с квантованием INT8.
Link to this sectionКак развернуть модели YOLO26 TensorRT на NVIDIA Triton Inference Server?#
Развертывание моделей YOLO26 TensorRT на NVIDIA Triton Inference Server можно выполнить с помощью следующих ресурсов:
- Развертывание Ultralytics YOLO26 с помощью Triton Server: пошаговое руководство по настройке и использованию Triton Inference Server.
- Развертывание глубоких нейронных сетей с помощью NVIDIA TensorRT: руководство NVIDIA по развертыванию моделей глубокого обучения с помощью TensorRT с подробными вариантами развертывания и конфигурациями.
Эти руководства помогут тебе эффективно интегрировать модели YOLO26 в различные среды развертывания.
Link to this sectionКакие улучшения производительности наблюдаются при экспорте моделей YOLO26 в TensorRT?#
Улучшения производительности с 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 и нашим отчетам об анализе производительности.