TensorRT
TensorRT 是 NVIDIA 提供的 SDK,可优化训练好的模型,使其在 NVIDIA GPU 上以低延迟运行。了解其工作原理,以及如何将 YOLO 导出为 TensorRT 格式。
TensorRT 是 NVIDIA 开发的高性能深度学习推理软件开发工具包(SDK)。它旨在优化神经网络模型以供部署,为深度学习应用提供低推理延迟和高吞吐量。TensorRT 作为优化编译器,可以接收来自 PyTorch 和 TensorFlow 等主流框架的已训练网络,并对其进行重构,使网络能够在 NVIDIA GPU 上高效运行。这项能力对于在生产环境中运行复杂 AI 模型至关重要,因为在生产环境中,速度和效率尤为重要。
TensorRT 如何优化模型#
TensorRT 的核心功能是将训练好的神经网络转换为专门针对目标硬件调优的优化“引擎”。它通过多种先进技术实现这一目标:
- 层融合:优化器会将神经网络的多个层组合成单个内核,从而减少内存访问开销并提升执行速度。
- 精度校准:TensorRT 支持降低精度的模式,例如混合精度 (FP16) 和整数数量化 (INT8)。通过减少表示数值所用的位数(通常只会造成极小的精度损失),开发者可以显著加快数学运算并降低内存用量。这属于模型量化的一种形式。
- 内核自动调优:软件会自动为正在使用的特定 GPU 架构选择最佳数据布局和算法,并通过 CUDA 最大限度地利用硬件的并行处理能力。
实际应用#
TensorRT 能够以极低延迟处理海量数据,因此广泛应用于依赖计算机视觉和复杂人工智能任务的行业,在这些领域,时效性至关重要。
-
自动驾驶系统:在汽车领域的人工智能应用中,自动驾驶汽车必须立即处理多个摄像头的视频流,以检测行人、标志和障碍物。借助 TensorRT,目标检测网络等感知模型可以在几毫秒内分析视频帧,让车辆控制系统及时做出关乎安全的决策。
-
工业自动化:现代工厂利用制造业中的人工智能实现自动光学检测。高速摄像头会拍摄装配线上的产品图像,经过 TensorRT 优化的模型则能实时识别缺陷或异常。这确保了质量控制能够跟上高速生产的节奏;这类系统通常部署在工厂车间的边缘人工智能设备上,例如 NVIDIA Jetson平台。
在 Ultralytics YOLO 中使用 TensorRT#
借助现代 AI 工具,将 TensorRT 集成到工作流中十分简单。ultralytics 包提供了将标准 PyTorch 模型转换为 TensorRT 引擎的便捷方法。这样,用户就可以将 Ultralytics YOLO26 的先进架构与 NVIDIA GPU 的硬件加速结合起来。对于希望在导出前管理数据集和训练流程的团队,Ultralytics Platform 提供了完整的环境,帮助团队为高性能部署做好模型准备。
以下示例演示如何将 Ultralytics YOLO26 模型导出为 TensorRT 引擎文件(.engine),并将其用于实时推理:
from ultralytics import YOLO
# 加载最新的稳定版 YOLO26 模型(nano 尺寸)
model = YOLO("yolo26n.pt")
# 将模型导出为 TensorRT 格式(生成 'yolo26n.engine')
# 此步骤会针对你的特定 GPU 优化计算图
model.export(format="engine")
# 加载优化后的 TensorRT 引擎,实现高速推理
trt_model = YOLO("yolo26n.engine")
# 对图像源运行推理
results = trt_model("https://ultralytics.com/images/bus.jpg")TensorRT、ONNX 与训练框架的比较#
在模型部署领域中,区分 TensorRT 与其他常见术语很重要:
- 与 PyTorch/TensorFlow 相比:PyTorch 等框架主要用于模型训练和研究,提供灵活性并便于调试。TensorRT 是一种推理引擎,专门用于尽可能快速地执行训练好的模型。它不用于训练。
- 与 ONNX 相比:ONNX(开放神经网络交换)格式充当不同框架之间的中间桥梁。ONNX 提供互操作性(例如,将模型从 PyTorch 移植到其他平台),而 TensorRT 专注于针对特定硬件进行优化。模型通常会先转换为 ONNX,再由 TensorRT 解析以生成最终引擎。
对于希望最大限度提升人工智能智能体或视觉系统性能的开发者而言,了解如何从训练框架过渡到 TensorRT 这类优化运行时,是专业 MLOps中的关键一步。










