跳转至内容

YOLO11 模型的 TensorRT 导出

在高性能环境中部署计算机视觉模型可能需要一种能够最大限度地提高速度和效率的格式。当您在 NVIDIA GPU 上部署模型时,尤其如此。

通过使用 TensorRT 导出格式,您可以增强您的 Ultralytics YOLO11 模型,以便在 NVIDIA 硬件上进行快速高效的推理。本指南将为您提供易于遵循的转换过程步骤,并帮助您在 深度学习 项目中充分利用 NVIDIA 的先进技术。

TensorRT

TensorRT 概述

由 NVIDIA 开发的 TensorRT 是一款专为高速深度学习推理而设计的高级软件开发工具包 (SDK)。它非常适合目标检测等实时应用。

此工具包优化了NVIDIA GPU的深度学习模型,从而实现了更快、更高效的运算。 TensorRT模型经过TensorRT优化,其中包括层融合、精度校准(INT8和FP16)、动态张量内存管理和内核自动调整等技术。 将深度学习模型转换为TensorRT格式使开发人员可以充分发挥NVIDIA GPU的潜力。

TensorRT 以其与各种模型格式的兼容性而闻名,包括 TensorFlow、PyTorch 和 ONNX,为开发者提供了一个灵活的解决方案,用于集成和优化来自不同框架的模型。这种多功能性使得跨各种硬件和软件环境的高效 模型部署 成为可能。

TensorRT 模型的主要特性

TensorRT 模型提供了一系列关键特性,这些特性有助于它们在高速深度学习推理中的效率和有效性:

  • 精度校准:TensorRT 支持精度校准,允许针对特定的精度要求对模型进行微调。这包括支持降低精度的格式,如 INT8 和 FP16,这可以进一步提高推理速度,同时保持可接受的精度水平。

  • 层融合:TensorRT 优化过程包括层融合,其中神经网络的多个层被组合成一个单一的操作。这通过最小化内存访问和计算来减少计算开销并提高推理速度。

TensorRT 层融合

  • 动态 Tensor 内存管理: TensorRT 在推理期间有效地管理 tensor 内存使用,从而减少内存开销并优化内存分配。这可以更有效地利用 GPU 内存。

  • 自动内核调整: TensorRT 应用自动内核调整,为模型的每一层选择最优化的 GPU 内核。这种自适应方法确保模型充分利用 GPU 的计算能力。

TensorRT 中的部署选项

在查看将 YOLO11 模型导出为 TensorRT 格式的代码之前,让我们先了解 TensorRT 模型通常在哪些场景中使用。

TensorRT 提供了多种部署选项,每个选项在易于集成、性能优化和灵活性之间实现了不同的平衡:

  • TensorFlow 中部署: 此方法将 TensorRT 集成到 TensorFlow 中,允许优化的模型在熟悉的 TensorFlow 环境中运行。对于混合使用支持和不支持层的模型,此方法非常有用,因为 TF-TRT 可以有效地处理这些层。

TensorRT 概述

  • 独立 TensorRT 运行时 API:提供精细控制,非常适合对性能要求严苛的应用程序。它更复杂,但允许自定义实现不受支持的算子。

  • NVIDIA Triton Inference Server: 一种支持来自各种框架的模型的选项。它特别适用于云或边缘推理,并提供诸如并发模型执行和模型分析之类的功能。

将 YOLO11 模型导出到 TensorRT

通过将 YOLO11 模型转换为 TensorRT 格式,您可以提高执行效率并优化性能。

安装

要安装所需的软件包,请运行:

安装

# Install the required package for YOLO11
pip install ultralytics

有关安装过程的详细说明和最佳实践,请查看我们的YOLO11安装指南。在为YOLO11安装所需软件包时,如果遇到任何困难,请查阅我们的常见问题指南,获取解决方案和技巧。

用法

在深入了解使用说明之前,请务必查看 Ultralytics 提供的 YOLO11 模型系列。这将帮助您为您的项目需求选择最合适的模型。

用法

from ultralytics import YOLO

# Load the YOLO11 model
model = YOLO("yolo11n.pt")

# Export the model to TensorRT format
model.export(format="engine")  # creates 'yolo11n.engine'

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

# Run inference
results = tensorrt_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to TensorRT format
yolo export model=yolo11n.pt format=engine # creates 'yolo11n.engine''

# Run inference with the exported model
yolo predict model=yolo11n.engine source='https://ultralytics.com/images/bus.jpg'

导出参数

参数 类型 默认值 描述
format str 'engine' 导出模型的目标格式,定义与各种部署环境的兼容性。
imgsz inttuple 640 模型输入的所需图像大小。 可以是正方形图像的整数或元组 (height, width) 用于指定特定维度。
half bool False 启用 FP16(半精度)量化,从而减小模型大小并可能加快受支持硬件上的推理速度。
int8 bool False 激活 INT8 量化,进一步压缩模型并以最小的精度损失加快推理速度,主要用于边缘设备。
dynamic bool False 允许动态输入大小,从而增强了处理不同图像尺寸的灵活性。
simplify bool True 使用以下方式简化模型图 onnxslim,从而可能提高性能和兼容性。
workspace floatNone None 设置 TensorRT 优化的最大工作区大小(以 GiB 为单位),以平衡内存使用和性能;使用 None 用于 TensorRT 自动分配,最高可达设备最大值。
nms bool False 添加非极大值抑制 (NMS),这对于准确高效的检测后处理至关重要。
batch int 1 指定导出模型批处理推理大小或导出模型将并发处理的最大图像数量,在 predict 模式下。
data str 'coco8.yaml' 路径指向 数据集 配置文件(默认: coco8.yaml),这对于量化至关重要。
fraction float 1.0 指定用于 INT8 量化校准的数据集比例。允许在完整数据集的子集上进行校准,这对于实验或资源有限时非常有用。如果未在使用 INT8 启用时指定,则将使用完整数据集。
device str None 指定导出设备:GPU (device=0),以及用于 NVIDIA Jetson 的 DLA(device=dla:0device=dla:1)。

提示

请确保在导出到 TensorRT 时使用支持 CUDA 的 GPU。

有关导出过程的更多详细信息,请访问Ultralytics 文档页面上的导出

使用 INT8 量化导出 TensorRT

使用具有 INT8 精度的 TensorRT 导出 Ultralytics YOLO 模型会执行训练后量化 (PTQ)。TensorRT 将校准用于 PTQ,校准会测量每个激活 tensor 内的激活分布,因为 YOLO 模型会对有代表性的输入数据执行推理,然后使用该分布来估计每个 tensor 的比例值。每个激活 tensor 都是量化的候选对象,具有通过校准过程推导出的相关比例。

当处理隐式量化网络时,TensorRT会伺机使用INT8来优化层执行时间。如果某一层在INT8中运行速度更快,并且已在其数据输入和输出上分配了量化比例,则会将具有INT8精度的内核分配给该层,否则,TensorRT会根据哪种精度能使该层执行速度更快,选择FP32或FP16精度用于该内核。

提示

至关重要的是,要确保用于部署 TensorRT 模型权重的同一设备也用于导出 INT8 精度,因为校准结果可能因设备而异。

配置 INT8 导出

使用时提供的参数 导出 适用于 Ultralytics YOLO 模型的 极大地 会影响导出模型的性能。它们还需要根据可用的设备资源进行选择,但是默认参数 应该 适用于大多数 Ampere (或更新版本) NVIDIA 独立 GPU。所使用的校准算法是 "MINMAX_CALIBRATION" 您可以阅读更多关于可用选项的详细信息 在 TensorRT 开发者指南中。Ultralytics 测试发现 "MINMAX_CALIBRATION" 是最佳选择,并且导出已固定为使用此算法。

  • workspace :控制转换模型权重时设备内存分配的大小(以 GiB 为单位)。

    • 调整 workspace 根据您的校准需求和资源可用性而定的值。虽然较大的 workspace 可能会增加校准时间,但它允许 TensorRT 探索更广泛的优化策略,从而可能提高模型性能,并且 准确性。相反,较小的 workspace 可以减少校准时间,但也可能限制优化策略,从而影响量化模型的质量。

    • 默认为 workspace=None,这将允许 TensorRT 自动分配内存。如果手动配置,当校准崩溃(无警告退出)时,可能需要增加此值。

    • TensorRT 将报告 UNSUPPORTED_STATE 如果在导出过程中, workspace 大于设备可用的内存,这意味着 workspace 应该降低或设置为 None.

    • 可视化参数: workspace 被设置为最大值且校准失败/崩溃,请考虑使用 None 用于自动分配或通过减少以下的值 imgszbatch 以减少内存需求。

    • 请记住 INT8 的校准特定于每个设备,借用“高端”GPU 进行校准可能会导致在另一设备上运行推理时性能不佳。

  • batch :用于推理的最大批次大小。在推理过程中可以使用较小的批次,但推理不会接受大于指定大小的批次。

注意

在校准期间,两倍的 batch 将使用提供的尺寸。使用小批量可能导致校准期间的不准确缩放。这是因为该过程会根据其看到的数据进行调整。小批量可能无法捕获值的完整范围,从而导致最终校准出现问题,因此 batch 尺寸会自动加倍。如果没有提供尺寸,则 批次大小 已指定 batch=1,校准将在以下时间运行 batch=1 * 2 以减少校准缩放误差。

NVIDIA 的实验表明,他们建议使用至少 500 张校准图像,这些图像代表您模型的数据,并使用 INT8 量化校准。这是一个指导原则,而不是 困难 要求,并且 您需要通过实验来确定什么最适合您的数据集 由于 TensorRT 的 INT8 校准需要校准数据,请务必使用 data 在以下情况下使用的参数 int8=True 用于 TensorRT,并使用 data="my_dataset.yaml",它将使用来自 验证 进行校准。当没有为 data 通过导出到 TensorRT 并进行 INT8 量化,默认将使用以下其中一种 基于模型任务的“小型”示例数据集 而不是抛出错误。

示例

from ultralytics import YOLO

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

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

# Run inference
result = model.predict("https://ultralytics.com/images/bus.jpg")
  1. 使用动态轴导出,当使用以下命令导出时,默认情况下将启用此功能 int8=True 即使未显式设置。请参阅 导出参数 更多信息。
  2. 为导出的模型设置最大批处理大小为 8,用于校准 batch = 2 * 8 以避免校准期间出现缩放错误。
  3. 分配 4 GiB 内存,而不是为转换过程分配整个设备。
  4. 使用 COCO 数据集 进行校准,特别是用于验证的图像(总共 5,000 张)。
# Export a YOLO11n PyTorch model to TensorRT format with INT8 quantization
yolo export model=yolo11n.pt format=engine batch=8 workspace=4 int8=True data=coco.yaml # creates 'yolov8n.engine''

# Run inference with the exported TensorRT quantized model
yolo predict model=yolov8n.engine source='https://ultralytics.com/images/bus.jpg'
校准缓存

TensorRT 将生成一个校准 .cache 可以使用相同的数据重复使用,以加速未来模型权重的导出,但是当数据差异很大或者如果 batch 值发生了巨大变化。在这些情况下,现有的 .cache 应重命名并移动到不同的目录或完全删除。

将 YOLO 与 TensorRT INT8 结合使用的优势

  • 减少模型大小: 从 FP32 到 INT8 的量化可以将模型大小减少 4 倍(在磁盘上或在内存中),从而缩短下载时间、降低存储要求并减少部署模型时的内存占用。

  • 更低的功耗: 与 FP32 模型相比,用于 INT8 导出的 YOLO 模型的降精度操作可以消耗更少的功率,尤其适用于电池供电设备。

  • 提高的推理速度: TensorRT 优化了目标硬件的模型,从而可能在 GPU、嵌入式设备和加速器上实现更快的推理速度。

关于推理速度的说明

使用导出到 TensorRT INT8 的模型进行的前几次推理调用,预计会比平常花费更长的预处理、推理和/或后处理时间。当更改以下内容时,也可能发生这种情况 imgsz 在推理过程中,尤其是在 imgsz 与导出期间指定的不同(导出 imgsz 被设置为 TensorRT “最佳”配置文件)。

将 YOLO 与 TensorRT INT8 结合使用的缺点

  • 评估指标下降: 使用较低的精度意味着 mAP, Precision, Recall 或任何 用于评估模型性能的其他指标 的表现可能会稍差。请参阅 性能结果部分 为了比较两者之间的差异, mAP50mAP50-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

精确度 评估测试 平均值
(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 上训练的模型的示例,请参阅分割文档,其中包括 80 个预训练类别。

注意

显示的推理时间适用于 mean, min (最快),以及 max (最慢),用于使用预训练权重进行的每次测试 yolov8n-seg.engine

精确度 评估测试 平均值
(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 个预训练类别。

注意

显示的推理时间适用于 mean, min (最快),以及 max (最慢),用于使用预训练权重进行的每次测试 yolov8n-cls.engine

精确度 评估测试 平均值
(ms)
最小值 | 最大值
(毫秒)
top-1 top-5 batch 尺寸
(像素)
FP32 预测 0.26 0.25 | 0.28 8 640
FP32 ImageNetval 0.26 0.35 0.61 1 640
FP16 预测 0.18 0.17 | 0.19 8 640
FP16 ImageNetval 0.18 0.35 0.61 1 640
INT8 预测 0.16 0.15 | 0.57 8 640
INT8 ImageNetval 0.15 0.32 0.59 1 640

请参阅姿势估计文档,了解在 COCO 上训练的这些模型的使用示例,其中包括 1 个预训练的类别“person”。

注意

显示的推理时间适用于 mean, min (最快),以及 max (最慢),用于使用预训练权重进行的每次测试 yolov8n-pose.engine

精确度 评估测试 平均值
(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 个预训练类别。

注意

显示的推理时间适用于 mean, min (最快),以及 max (最慢),用于使用预训练权重进行的每次测试 yolov8n-obb.engine

精确度 评估测试 平均值
(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

消费级 GPU

检测性能 (COCO)

已在 Windows 10.0.19045 上测试。 python 3.10.9, ultralytics==8.2.4, tensorrt==10.0.0b6

注意

显示的推理时间适用于 mean, min (最快),以及 max (最慢),用于使用预训练权重进行的每次测试 yolov8n.engine

精确度 评估测试 平均值
(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

精确度 评估测试 平均值
(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

精确度 评估测试 平均值
(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 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

精确度 评估测试 平均值
(ms)
最小值 | 最大值
(毫秒)
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

信息

请参阅我们的Ultralytics YOLO NVIDIA Jetson 快速入门指南,以了解有关设置和配置的更多信息。

评估方法

展开以下部分,了解这些模型是如何导出和测试的。

导出配置

有关导出配置参数的详细信息,请参阅导出模式

from ultralytics import YOLO

model = YOLO("yolov8n.pt")

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

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

# TensorRT INT8 with calibration `data` (i.e. COCO, ImageNet, or DOTAv1 for appropriate model task)
out = model.export(
    format="engine", imgsz=640, dynamic=True, verbose=False, batch=8, workspace=2, int8=True, data="coco8.yaml"
)
Predict 循环

有关更多信息,请参阅预测模式

import cv2

from ultralytics import YOLO

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

for _ in range(100):
    result = model.predict(
        [img] * 8,  # batch=8 of the same image
        verbose=False,
        device="cuda",
    )
验证配置

参见 val 模式 要了解有关验证配置参数的更多信息。

from ultralytics import YOLO

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

部署导出的 YOLO11 TensorRT 模型

在成功将您的 Ultralytics YOLO11 模型导出为 TensorRT 格式后,您现在可以部署它们了。有关在各种设置中部署 TensorRT 模型的深入说明,请查看以下资源:

总结

在本指南中,我们重点介绍了将 Ultralytics YOLO11 模型转换为 NVIDIA 的 TensorRT 模型格式。此转换步骤对于提高 YOLO11 模型的效率和速度至关重要,使其更有效并适用于各种部署环境。

有关使用详情的更多信息,请查阅TensorRT官方文档

如果您对其他 Ultralytics YOLO11 集成感兴趣,我们的集成指南页面提供了广泛的信息资源和见解。

常见问题

如何将 YOLO11 模型转换为 TensorRT 格式?

要将您的 Ultralytics YOLO11 模型转换为 TensorRT 格式以进行优化的 NVIDIA GPU 推理,请按照以下步骤操作:

  1. 安装所需软件包

    pip install ultralytics
    
  2. 导出您的 YOLO11 模型:

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

更多详情,请访问YOLO11 安装指南导出文档

使用 TensorRT 部署 YOLO11 模型有哪些好处?

使用 TensorRT 优化 YOLO11 模型具有以下几个优点:

  • 更快的推理速度: TensorRT 优化模型层并使用精度校准(INT8 和 FP16)来加速推理,而不会显着牺牲准确性。
  • 内存效率: TensorRT 动态管理 tensor 内存,减少开销并提高 GPU 内存利用率。
  • 层融合:将多个层合并为单个操作,从而降低计算复杂度。
  • Kernel 自动调优:自动为每个模型层选择优化的 GPU kernel,确保最佳性能。

要了解更多信息,请浏览 NVIDIA 官方 TensorRT 文档 和我们的 深入 TensorRT 概述

我可以在TensorRT中使用INT8量化来处理YOLO11模型吗?

是的,您可以使用带有 INT8 量化的 TensorRT 导出 YOLO11 模型。此过程涉及训练后量化 (PTQ) 和校准:

  1. 导出为 INT8:

    from ultralytics import YOLO
    
    model = YOLO("yolov8n.pt")
    model.export(format="engine", batch=8, workspace=4, int8=True, data="coco.yaml")
    
  2. 运行推理

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

有关更多详细信息,请参阅使用 INT8 量化导出 TensorRT 部分

如何在 NVIDIA Triton 推理服务器上部署 YOLO11 TensorRT 模型?

可以使用以下资源在 NVIDIA Triton 推理服务器上部署 YOLO11 TensorRT 模型:

这些指南将帮助您在各种部署环境中高效地集成 YOLOv8 模型。

导出到 TensorRT 的 YOLOv8 模型观察到的性能提升是什么?

使用 TensorRT 带来的性能提升会因所用硬件而异。以下是一些典型的基准测试:

  • NVIDIA A100:

    • FP32 推理:约 0.52 毫秒 / 图像
    • FP16 推理:约 0.34 毫秒 / 图像
    • INT8 推理:约 0.28 毫秒 / 图像
    • INT8 精度下的 mAP 略有降低,但速度显着提高。
  • 消费级 GPU(例如,RTX 3080):

    • FP32 推理:约 1.06 毫秒 / 图像
    • FP16 推理:约 0.62 毫秒 / 图像
    • INT8 推理:约 0.52 毫秒 / 图像

不同硬件配置的详细性能基准测试可以在性能部分找到。

有关 TensorRT 性能的更全面见解,请参阅 Ultralytics 文档和我们的性能分析报告。



📅 创建于 1 年前 ✏️ 更新于 2 个月前

评论