TensorRT Экспорт для моделей YOLOv8
Развертывание моделей компьютерного зрения в высокопроизводительных средах может потребовать формата, обеспечивающего максимальную скорость и эффективность. Это особенно актуально, когда ты разворачиваешь свою модель на графических процессорах NVIDIA.
Используя формат экспорта TensorRT , ты сможешь улучшить свои Ultralytics YOLOv8 модели для быстрых и эффективных выводов на оборудовании NVIDIA. В этом руководстве ты найдешь простые и понятные шаги по конвертации и сможешь максимально использовать передовые технологии NVIDIA в своих проектах глубокого обучения.
TensorRT
TensorRTразработанный компанией NVIDIA, представляет собой продвинутый набор средств разработки программного обеспечения (SDK), предназначенный для высокоскоростного глубокого обучения выводам. Он хорошо подходит для приложений реального времени, таких как обнаружение объектов.
Этот инструментарий оптимизирует модели глубокого обучения для графических процессоров NVIDIA и приводит к более быстрым и эффективным операциям. Модели TensorRT подвергаются оптимизации TensorRT, которая включает такие техники, как слияние слоев, калибровка точности (INT8 и FP16), динамическое управление тензорной памятью и автонастройка ядра. Преобразование моделей глубокого обучения в формат TensorRT позволяет разработчикам в полной мере реализовать потенциал графических процессоров NVIDIA.
TensorRT известен своей совместимостью с различными форматами моделей, включая TensorFlow, PyTorch и ONNX, предоставляя разработчикам гибкое решение для интеграции и оптимизации моделей из различных фреймворков. Такая универсальность позволяет эффективно развертывать модели в различных аппаратных и программных средах.
Ключевые особенности моделей TensorRT
Модели TensorRT обладают рядом ключевых особенностей, которые способствуют их эффективности и результативности в высокоскоростном глубоком обучении выводам:
-
Точная калибровка: TensorRT поддерживает точную калибровку, позволяя настраивать модели под конкретные требования к точности. Сюда входит поддержка форматов пониженной точности, таких как INT8 и FP16, что позволяет еще больше увеличить скорость вычислений при сохранении приемлемого уровня точности.
-
Слияние слоев: Процесс оптимизации TensorRT включает в себя слияние слоев, когда несколько слоев нейронной сети объединяются в одну операцию. Это снижает вычислительные накладные расходы и повышает скорость вывода за счет минимизации доступа к памяти и вычислений.
-
Динамическое управление памятью Tensor : TensorRT эффективно управляет использованием памяти tensor во время выводов, снижая накладные расходы памяти и оптимизируя ее распределение. Это приводит к более эффективному использованию памяти GPU.
-
Автоматическая настройка ядра: TensorRT применяет автоматическую настройку ядра, чтобы выбрать наиболее оптимизированное ядро GPU для каждого слоя модели. Этот адаптивный подход гарантирует, что модель полностью использует вычислительную мощь GPU.
Варианты развертывания в TensorRT
Прежде чем мы рассмотрим код для экспорта моделей YOLOv8 в формат TensorRT, давай разберемся, где обычно используются модели TensorRT.
TensorRT предлагает несколько вариантов развертывания, и каждый вариант по-разному балансирует между простотой интеграции, оптимизацией производительности и гибкостью:
- Развертывание внутри TensorFlow: Этот метод интегрирует TensorRT в TensorFlow, позволяя оптимизированным моделям работать в привычной среде TensorFlow . Это полезно для моделей со смесью поддерживаемых и неподдерживаемых слоев, так как TF-TRT может эффективно обрабатывать их.
-
Автономный TensorRT Runtime API: Предлагает гранулярный контроль, идеально подходит для приложений, критичных к производительности. Он сложнее, но позволяет реализовывать неподдерживаемые операторы.
-
NVIDIA Triton Inference Server: Опция, поддерживающая модели из различных фреймворков. Он особенно подходит для облачных или пограничных выводов и предоставляет такие возможности, как одновременное выполнение моделей и их анализ.
Экспорт моделей YOLOv8 в TensorRT
Ты можешь повысить эффективность выполнения и оптимизировать производительность, конвертируя модели YOLOv8 в формат TensorRT.
Установка
Чтобы установить нужный пакет, выполни:
Для получения подробных инструкций и лучших практик, связанных с процессом установки, ознакомься с нашим руководством по установке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')
Более подробно о процессе экспорта можно узнать на странице документацииUltralytics , посвященной экспорту.
Экспорт TensorRT с квантованием INT8
Экспорт моделей Ultralytics YOLO с помощью TensorRT с точностью INT8 приводит к квантованию после обучения (PTQ). TensorRT использует калибровку для PTQ, которая измеряет распределение активаций внутри каждой активации tensor , поскольку модель YOLO обрабатывает вывод на репрезентативных входных данных, а затем использует это распределение для оценки значений шкалы для каждой tensor. Каждая активация tensor , которая является кандидатом на квантование, имеет связанную с ней шкалу, которая выводится в процессе калибровки.
При обработке неявно квантованных сетей TensorRT использует INT8 оппортунистически, чтобы оптимизировать время выполнения слоя. Если слой работает быстрее в INT8 и имеет назначенные шкалы квантования на входах и выходах данных, то этому слою назначается ядро с точностью INT8, в противном случае TensorRT выбирает точность FP32 или FP16 для ядра, основываясь на том, что приводит к более быстрому времени выполнения для данного слоя.
Наконечник
Очень важно убедиться, что для экспорта с точностью INT8 используется то же устройство, которое будет использовать модельные веса TensorRT для развертывания, так как результаты калибровки могут отличаться на разных устройствах.
Настройка экспорта INT8
Аргументы, предоставляемые при использовании экспорт для модели Ultralytics YOLO будет очень влияют на производительность экспортируемой модели. Их также нужно будет выбирать в зависимости от доступных ресурсов устройства, однако по умолчанию используются аргументы должен работает для большинства Амперные (или более новые) дискретные графические процессоры NVIDIA. Используется следующий алгоритм калибровки "ENTROPY_CALIBRATION_2"
И ты можешь прочитать более подробную информацию о доступных опциях в руководстве для разработчиков TensorRT .. Ultralytics тесты показали, что "ENTROPY_CALIBRATION_2"
оказался наилучшим выбором, и экспортные поставки закреплены за этим алгоритмом.
-
workspace
: Контролирует размер (в GiB) выделения памяти устройства при преобразовании весов модели.-
Стремись использовать минимум
workspace
требуемое значение, так как это не позволит протестировать алгоритмы, требующие большеworkspace
не будет рассматриваться строителем TensorRT . Установив более высокое значение дляworkspace
может взять значительно дольше чтобы откалибровать и экспортировать. -
По умолчанию
workspace=4
(GiB), это значение может потребоваться увеличить, если калибровка аварийно завершается (выходит без предупреждения). -
TensorRT сообщит
UNSUPPORTED_STATE
во время экспорта, если значение дляworkspace
больше, чем объем памяти, доступный устройству, а значит, значение дляworkspace
должен быть снижен. -
Если
workspace
установлено на максимальное значение, и калибровка не проходит/проваливается, подумай о том, чтобы уменьшить значения дляimgsz
иbatch
чтобы снизить требования к памяти. -
Помни, что калибровка для INT8 специфична для каждого устройства, поэтому заимствование "high-end" GPU для калибровки может привести к низкой производительности при выполнении выводов на другом устройстве.
-
-
batch
: Максимальный размер партии, который будет использоваться для вывода. Во время проведения анализа можно использовать и меньшие партии, но анализ не будет принимать партии больше указанной.Примечание
Во время калибровки дважды нажми на кнопку
batch
будут использоваться указанные размеры. Использование небольших партий может привести к неточному масштабированию во время калибровки. Это происходит потому, что процесс настраивается на основе данных, которые он видит. Маленькие партии могут не охватить весь диапазон значений, что приведет к проблемам с окончательной калибровкой, поэтомуbatch
размер автоматически удваивается. Если размер партии не указан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)!
)
model = YOLO("yolov8n.engine", task="detect") # load the model
- Экспорт с динамическими осями, это будет включено по умолчанию при экспорте с
int8=True
даже если он не задан явно. Смотри аргументы для экспорта за дополнительной информацией. - Устанавливает максимальный размер партии 8 для экспортируемой модели, которая калибруется с помощью
batch = 2 *×* 8
чтобы избежать ошибок масштабирования при калибровке. - Выделяет 4 Гигабайта памяти вместо того, чтобы выделять все устройство под процесс конвертации.
- Для калибровки используется набор данных COCO, а именно изображения, использованные для проверки (всего 5 000).
Кэш калибровки
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 |
Размер (пикселей) |
---|---|---|---|---|---|---|---|
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 |
Примеры использования этих моделей, обученных на 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 |
Размер (пикселей) |
---|---|---|---|---|---|---|---|---|---|
FP32 | Предсказывай | 0.62 | 0.61 | 0.68 | 8 | 640 | ||||
FP32 | COCOval | 0.63 | 0.52 | 0.36 | 0.49 | 0.31 | 1 | 640 | |
FP16 | Предсказывай | 0.40 | 0.39 | 0.44 | 8 | 640 | ||||
FP16 | COCOval | 0.43 | 0.52 | 0.36 | 0.49 | 0.30 | 1 | 640 | |
INT8 | Предсказывай | 0.34 | 0.33 | 0.37 | 8 | 640 | ||||
INT8 | COCOval | 0.36 | 0.46 | 0.32 | 0.43 | 0.27 | 1 | 640 |
Примеры использования этих моделей, обученных на ImageNet и включающих 1000 предварительно обученных классов, смотри в Classification Docs.
Примечание
Время вывода показано для mean
, min
(самый быстрый), и max
(самый медленный) для каждого теста с использованием предварительно обученных весов yolov8n-cls.engine
Точность | Оценочный тест | Среднее (мс) |
min | max (ms) |
топ-1 | топ-5 | batch |
Размер (пикселей) |
---|---|---|---|---|---|---|---|
FP32 | Предсказывай | 0.26 | 0.25 | 0.28 | 0.35 | 0.61 | 8 | 640 |
FP32 | ImageNetval | 0.26 | 1 | 640 | |||
FP16 | Предсказывай | 0.18 | 0.17 | 0.19 | 0.35 | 0.61 | 8 | 640 |
FP16 | ImageNetval | 0.18 | 1 | 640 | |||
INT8 | Предсказывай | 0.16 | 0.15 | 0.57 | 0.32 | 0.59 | 8 | 640 |
INT8 | ImageNetval | 0.15 | 1 | 640 |
Примеры использования этих моделей, обученных на 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 |
Размер (пикселей) |
---|---|---|---|---|---|---|---|---|---|
FP32 | Предсказывай | 0.54 | 0.53 | 0.58 | 8 | 640 | ||||
FP32 | COCOval | 0.55 | 0.91 | 0.69 | 0.80 | 0.51 | 1 | 640 | |
FP16 | Предсказывай | 0.37 | 0.35 | 0.41 | 8 | 640 | ||||
FP16 | COCOval | 0.36 | 0.91 | 0.69 | 0.80 | 0.51 | 1 | 640 | |
INT8 | Предсказывай | 0.29 | 0.28 | 0.33 | 8 | 640 | ||||
INT8 | COCOval | 0.30 | 0.90 | 0.68 | 0.78 | 0.47 | 1 | 640 |
Примеры использования этих моделей, обученных на DOTAv1 и включающих 15 предварительно обученных классов, смотри в Oriented Detection Docs.
Примечание
Время вывода показано для mean
, min
(самый быстрый), и max
(самый медленный) для каждого теста с использованием предварительно обученных весов yolov8n-obb.engine
Точность | Оценочный тест | Среднее (мс) |
min | max (ms) |
mAPval 50(B) |
mAPval 50-95(B) |
batch |
Размер (пикселей) |
---|---|---|---|---|---|---|---|
FP32 | Предсказывай | 0.52 | 0.51 | 0.59 | 8 | 640 | ||
FP32 | DOTAv1val | 0.76 | 0.50 | 0.36 | 1 | 640 | |
FP16 | Предсказывай | 0.34 | 0.33 | 0.42 | 8 | 640 | ||
FP16 | DOTAv1val | 0.59 | 0.50 | 0.36 | 1 | 640 | |
INT8 | Предсказывай | 0.29 | 0.28 | 0.33 | 8 | 640 | ||
INT8 | DOTAv1val | 0.32 | 0.45 | 0.32 | 1 | 640 |
Потребительские графические процессоры
Производительность обнаружения (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 |
Размер (пикселей) |
---|---|---|---|---|---|---|---|
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 |
Проверено на 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 |
Размер (пикселей) |
---|---|---|---|---|---|---|---|
FP32 | Предсказывай | 1.76 | 1.69 | 1.87 | 8 | 640 | ||
FP32 | COCOval | 1.94 | 0.52 | 0.37 | 1 | 640 | |
FP16 | Предсказывай | 0.86 | 0.75 | 1.00 | 8 | 640 | ||
FP16 | COCOval | 1.43 | 0.52 | 0.37 | 1 | 640 | |
INT8 | Предсказывай | 0.80 | 0.75 | 1.00 | 8 | 640 | ||
INT8 | COCOval | 1.35 | 0.47 | 0.33 | 1 | 640 |
Проверено на 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 |
Размер (пикселей) |
---|---|---|---|---|---|---|---|
FP32 | Предсказывай | 2.84 | 2.84 | 2.85 | 8 | 640 | ||
FP32 | COCOval | 2.94 | 0.52 | 0.37 | 1 | 640 | |
FP16 | Предсказывай | 1.09 | 1.09 | 1.10 | 8 | 640 | ||
FP16 | COCOval | 1.20 | 0.52 | 0.37 | 1 | 640 | |
INT8 | Предсказывай | 0.75 | 0.74 | 0.75 | 8 | 640 | ||
INT8 | COCOval | 0.76 | 0.47 | 0.33 | 1 | 640 |
Встраиваемые устройства
Производительность обнаружения (COCO)
Проверено с JetPack 5.1.3 (L4T 35.5.0) Ubuntu 20.04.6, python 3.8.10
, ultralytics==8.2.4
, tensorrt==8.5.2.2
Примечание
Время вывода показано для mean
, min
(самый быстрый), и max
(самый медленный) для каждого теста с использованием предварительно обученных весов yolov8n.engine
Точность | Оценочный тест | Среднее (мс) |
min | max (ms) |
mAPval 50(B) |
mAPval 50-95(B) |
batch |
Размер (пикселей) |
---|---|---|---|---|---|---|---|
FP32 | Предсказывай | 6.90 | 6.89 | 6.93 | 8 | 640 | ||
FP32 | COCOval | 6.97 | 0.52 | 0.37 | 1 | 640 | |
FP16 | Предсказывай | 3.36 | 3.35 | 3.39 | 8 | 640 | ||
FP16 | COCOval | 3.39 | 0.52 | 0.37 | 1 | 640 | |
INT8 | Предсказывай | 2.32 | 2.32 | 2.34 | 8 | 640 | ||
INT8 | COCOval | 2.33 | 0.47 | 0.33 | 1 | 640 |
Информация
Смотри наше краткое руководство по NVIDIA Jetson с Ultralytics YOLO , чтобы узнать больше об установке и настройке.
Методы оценки
Разверни разделы ниже, чтобы узнать, как эти модели экспортировались и тестировались.
Экспорт конфигураций
Подробнее об аргументах экспортной конфигурации смотри в разделе " Режим экспорта ".
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
out = model.export(
format="engine",
imgsz:640,
dynamic:True,
verbose:False,
batch:8,
workspace:2,
int8=True,
data:"data.yaml" # COCO, ImageNet, or DOTAv1 for appropriate model task
)
Предсказанная петля
Дополнительную информацию смотри в разделе " Режим предсказаний ".
Конфигурация проверки
Смотри val
режим чтобы узнать больше об аргументах конфигурации валидации.
Развертывание экспортированных YOLOv8 TensorRT моделей
Успешно экспортировав свои модели Ultralytics YOLOv8 в формат TensorRT, ты теперь готов к их развертыванию. Для получения подробных инструкций по развертыванию твоих TensorRT-моделей в различных условиях посмотри следующие ресурсы:
-
Разверни Ultralytics с помощью сервера Triton .: Наше руководство о том, как использовать сервер NVIDIA Triton Inference (ранее TensorRT Inference) Server специально для работы с Ultralytics YOLO моделями.
-
Развертывание глубоких нейронных сетей с помощью NVIDIA TensorRT: В этой статье рассказывается, как использовать NVIDIA TensorRT для эффективного развертывания глубоких нейронных сетей на платформах развертывания на базе GPU.
-
Конечный ИИ для компьютеров на базе NVIDIA: NVIDIA TensorRT Deployment: В этой статье блога рассказывается об использовании NVIDIA TensorRT для оптимизации и развертывания моделей ИИ на ПК на базе NVIDIA.
-
Репозиторий GitHub для NVIDIA TensorRT:: Это официальный репозиторий GitHub, содержащий исходный код и документацию для NVIDIA TensorRT.
Резюме
В этом руководстве мы сосредоточились на конвертации моделей Ultralytics YOLOv8 в формат моделей NVIDIA TensorRT. Этот шаг преобразования имеет решающее значение для повышения эффективности и скорости работы моделей YOLOv8, делая их более эффективными и подходящими для различных сред развертывания.
Чтобы узнать подробности использования, загляни в официальную документациюTensorRT .
Если тебе интересно узнать о дополнительных интеграциях Ultralytics YOLOv8 , на странице нашего руководства по интеграции ты найдешь обширную подборку познавательных ресурсов.