Ultralytics YOLO27: 加入候补名单。
获取 YOLO 许可
返回 Ultralytics 术语表

TensorRT

TensorRT 是 NVIDIA 的 SDK,可将训练好的神经网络编译为针对单个 GPU 快速推理优化的引擎。了解它如何优化模型,并查看代码。

TensorRT 是 NVIDIA 提供的 SDK,用于在 NVIDIA GPU 上进行高性能深度学习推理。它接收一个已训练的网络(通常是 ONNX 文件),并在构建阶段将其编译成引擎,也称为计划文件:一种针对特定 GPU 的程序,可融合层、使用较低精度运行,并采用在目标 GPU 上测得速度最快的内核。在运行阶段,应用程序加载并执行该引擎,通常比原始框架具有更低的推理延迟和更高的吞吐量。TensorRT 提供 C++ 和 Python 库,以及 trtexec 命令行工具;截至 2026 年 10 月,其当前主要版本为 TensorRT 11,最新发布版本为 11.4。

TensorRT 如何优化模型#

构建器会对网络图应用多种优化:

  • 层与张量融合: 卷积、偏置和激活会合并成一个内核;不再使用其输出的层则会被移除,因此中间结果会保留在芯片上,而不必在 GPU 内存中反复读写。
  • 较低精度: 与 FP32 相比,FP16 和 BF16 可将内存流量减半;INT8 和 FP8 又能将流量减半;近期 GPU 上的 INT4(仅用于权重)和 FP4 还能进一步降低流量,这属于模型量化的一种形式。TensorRT 11 移除了 FP16 和 INT8 构建器标志,以及 TensorRT 10 中的隐式 INT8 校准,并改为要求使用强类型网络,由转换节点和量化-反量化对声明每一层的精度。NVIDIA 的 Model Optimizer 可以将这些节点插入 ONNX 文件。
  • 内核自动调优: 对于每一层,构建器都会在实际 GPU 上测试候选实现(称为 tactic)的运行时间,并保留最快的实现。
  • 内存规划: 生命周期不重叠的层会复用激活缓冲区,从而缩小引擎的内存占用。
  • 动态形状: 优化配置文件可设置最小、最优和最大形状,让单个引擎接受不同的批次大小或图像分辨率,并针对最优形状进行调优。

构建引擎可能需要几分钟,而且构建结果取决于硬件。默认情况下,引擎只能在构建它的 GPU 类型和相同 TensorRT 版本上运行;兼容不同硬件和版本的引擎会牺牲部分速度以换取可移植性。因此,部署时会保留 ONNX 文件,并在实际运行环境中构建引擎:

将模型导出为 TensorRT#

Ultralytics YOLO26模型可通过 model.export(format="engine")导出到 TensorRT:该流程会先写出 ONNX 文件,再在本地 GPU 上构建引擎;可以使用 quantize=16 导出为 FP16,或使用 quantize=8 导出为 INT8,并通过 data 数据集中的图像进行校准。在 TensorRT 11 上,由于强类型 API 的要求,导出流程会通过 Model Optimizer 应用这些精度:

from ultralytics import YOLO

# 在本地 NVIDIA GPU 上构建 FP16 TensorRT 引擎(写入 yolo26n.engine)
model = YOLO("yolo26n.pt")
model.export(format="engine", quantize=16)

# 加载引擎,并通过同一 API 运行推理
trt_model = YOLO("yolo26n.engine")
results = trt_model("https://ultralytics.com/images/bus.jpg")
results[0].save(filename="bus_tensorrt.jpg")

保存的图像展示了FP16 引擎在公交车照片上生成的检测结果,使用的接口与 PyTorch 模型的 YOLO 接口相同。

  • ONNX: TensorRT 最常使用的可移植模型格式。一个 ONNX 文件可以编译成分别适用于数据中心 GPU 和嵌入式模块的引擎。
  • 搭配 TensorRT 执行提供程序的 ONNX Runtime: 它会将 TensorRT 支持的子图作为 TensorRT 引擎运行,其余部分则回退到 CUDA 或 CPU 内核,同时保留 ONNX Runtime API。
  • PyTorch: 大多数模型都在这个框架中训练。Torch-TensorRT可以直接使用 TensorRT 编译 PyTorch 模型,无需单独经过 ONNX 步骤。
  • 其他推理引擎: 面向 Intel 硬件的 OpenVINO、面向 Apple 设备的 Core ML,以及面向 Android 和嵌入式设备的 LiteRT,都能在其他芯片上发挥相同作用。
  • TensorRT-LLM: NVIDIA 的开源库,用于大型语言模型推理,目前基于 PyTorch 架构,并提供经过优化的注意力内核、量化、推测解码和多 GPU 并行功能。

实际应用#

  • 视频分析: NVIDIA 的 DeepStream SDK 会在多摄像头流水线中运行 TensorRT 引擎,用于零售、交通和安防分析,让多路视频流共享一块 GPU。
  • 工业检测: 快速生产线上的摄像头必须在每个部件处于视野中的时间内完成实时推理,而较低精度的引擎让小型 GPU 也能胜任。
  • 自动驾驶汽车: 用于自动驾驶汽车的感知网络会作为 TensorRT 引擎运行在 NVIDIA DRIVE 平台上,例如 DRIVE AGX Orin 和 Thor。
  • 机器人和边缘设备:NVIDIA Jetson 模块通过 JetPack 提供 TensorRT。

探索解决方案

体育领域的计算机视觉

体育领域的计算机视觉

了解 Ultralytics YOLO 如何通过球员和球追踪、表现分析、教练洞察及运动员康复,推动体育视觉技术的发展。
了解详情
航空影像计算机视觉

航空影像计算机视觉

使用 Ultralytics YOLO 将无人机和航空影像转化为农业、水产养殖、保护工作和地理空间分析的实时洞察。
了解详情
航空航天中的计算机视觉

航空航天中的计算机视觉

使用 Ultralytics YOLO 将计算机视觉应用于航空航天领域,包括飞机检查、跑道 FOD 检测、机场地面作业和复合材料缺陷检测。
了解详情
安防领域的计算机视觉

安防领域的计算机视觉

使用 Ultralytics YOLO 模型守护每个场所。视觉 AI 可用于周界监控、威胁检测、车牌识别和工作场所安全。
了解详情
机器人领域的计算机视觉

机器人领域的计算机视觉

使用 Ultralytics YOLO 模型提升智能机器的能力。机器人领域的视觉 AI 可用于自主导航、感知、目标跟踪和实时控制。
了解详情
物流中的计算机视觉

物流中的计算机视觉

借助 Ultralytics YOLO 模型优化物流流程。视觉 AI 可用于包裹检查、分拣、车辆跟踪和仓库安全实时监控。
了解详情
零售中的计算机视觉

零售中的计算机视觉

借助 Ultralytics YOLO 模型重新构想零售。视觉 AI 可用于库存跟踪、货架监控、排队管理和更深入的客户洞察。
了解详情
医疗领域的计算机视觉

医疗领域的计算机视觉

借助 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可加快医学影像处理、优化诊断并监测患者。
了解详情
制造业中的计算机视觉

制造业中的计算机视觉

利用 Ultralytics YOLO 模型优化制造流程。视觉 AI 可用于质量控制、缺陷检测、个人防护装备合规检查和装配线自动化。
了解详情
汽车领域的计算机视觉

汽车领域的计算机视觉

利用 Ultralytics YOLO 模型在汽车领域应用计算机视觉。视觉 AI 可提升道路安全、驾驶辅助和车辆自动化水平,让道路更智能。
了解详情
农业中的计算机视觉

农业中的计算机视觉

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。为作物监测、牲畜追踪和精准农业提供支持,从而提高产量并实现更智能的生产。
了解详情

让我们携手构建 AI 的未来!

开启你的旅程,迎接机器学习的未来