跳至内容

TensorRT 导出YOLOv8 模型

在高性能环境中部署计算机视觉模型需要一种能最大限度提高速度和效率的格式。在英伟达™(NVIDIA®)图形处理器上部署模型时尤其如此。

通过使用TensorRT 导出格式,您可以增强您的 Ultralytics YOLOv8模型,以便在英伟达™(NVIDIA®)硬件上进行快速高效的推理。本指南将为您提供简单易懂的转换步骤,帮助您在深度学习项目中充分利用英伟达™(NVIDIA®)的先进技术。

TensorRT

TensorRT 概述

TensorRT由英伟达™(NVIDIA®)开发,是一款先进的软件开发工具包(SDK),专为高速深度学习推理而设计。它非常适合物体检测等实时应用。

该工具包可针对英伟达™(NVIDIA®)GPU 优化深度学习模型,从而实现更快、更高效的操作。TensorRT 模型经过TensorRT 优化,其中包括层融合、精度校准(INT8 和 FP16)、动态tensor 内存管理和内核自动调整等技术。将深度学习模型转换为TensorRT 格式可让开发人员充分发挥英伟达™(NVIDIA®)GPU 的潜力。

TensorRT 以其与各种模型格式(包括TensorFlow 、PyTorch 和ONNX )的兼容性而著称,为开发人员整合和优化来自不同框架的模型提供了灵活的解决方案。这种多功能性使得模型可以在不同的硬件和软件环境中高效部署。

TensorRT 机型的主要特点

TensorRT 模型具有一系列关键特性,有助于提高其在高速深度学习推理中的效率和有效性:

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

  • 层融合:TensorRT 优化过程包括层融合,即将神经网络的多个层合并为一个操作。这可以减少计算开销,并通过最大限度地减少内存访问和计算来提高推理速度。

TensorRT 层融合

  • 动态Tensor 内存管理:TensorRT 在推理过程中有效管理tensor 内存使用情况,减少内存开销并优化内存分配。这使得 GPU 内存利用率更高。

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

中的部署选项TensorRT

在了解将YOLOv8 模型导出为TensorRT 格式的代码之前,让我们先了解一下TensorRT 模型通常用于何处。

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

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

TensorRT 概述

  • 独立的TensorRT RuntimeAPI:提供细粒度控制,是性能关键型应用的理想选择。它比较复杂,但允许自定义执行不支持的操作符。

  • 英伟达Triton 推论服务器:支持各种框架模型的选项。它特别适用于云推理或边缘推理,可提供并发模型执行和模型分析等功能。

将YOLOv8 模型导出到TensorRT

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

安装

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

安装

# Install the required package for YOLOv8
pip install ultralytics

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

使用方法

在了解使用说明之前,请务必查看 Ultralytics 提供的一系列YOLOv8 型号。这将有助于您根据项目要求选择最合适的型号。

使用方法

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')
# Export a YOLOv8n PyTorch model to TensorRT format
yolo export model=yolov8n.pt format=engine  # creates 'yolov8n.engine''

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

有关导出过程的更多详情,请访问Ultralytics 有关导出的文档页面

部署导出的YOLOv8 TensorRT 模型

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

摘要

在本指南中,我们重点将Ultralytics YOLOv8 模型转换为英伟达的TensorRT 模型格式。这一转换步骤对于提高YOLOv8 模型的效率和速度至关重要,可使其更加有效并适用于各种部署环境。

有关使用细节的更多信息,请参阅TensorRT 官方文档

如果您想了解Ultralytics YOLOv8 集成方面的其他信息,我们的集成指南页面提供了大量信息资源和见解。



创建于 2024-01-28,更新于 2024-01-28
作者:abirami-vina(1)

评论