TensorRT部署yolov5详解(Python实现,超详细)

哈喽大家好 ! 我是唐宋宋宋,很荣幸与您相见!!!

我的环境:

cuda:11.1

cudnn:8.7.0

TensorRT:8.4.1.5

首先需要下载TensorRT,官网链接附下:

NVIDIA TensorRT 8.x Download | NVIDIA Developer

注:下载TensorRT版本需要和你电脑上的cuda版本对应

yolov5的代码需要大家上github自己扒 链接已经提供。

GitHub – ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite

查看cuda版本,打开anaconda prompt 终端

输入 conda env list查看你的虚拟环境

激活虚拟环境 ctivate pythonProject1cpu3.7

输入命令 nvcc -V 查看cuda版本 如图

查看cudnn版本 输入路径C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1\include

默认是c盘的路径 有一个名cudnn_version.h文件使用.txt打开

cudnn版本8.7.0

接着通过你的cuda版本和cudnn版本去官网下载适合你电脑配置的TensorRT

注:下载GA版本

下载完成tensorRT版本我们就开始配置环境。

打开python文件

选择和你pycharm虚拟环境对应的版本 3.7即cp37 ,3.8即cp38

打开pycharm 终端开始安装 (需要进入到我们刚找好的对应版本路径下才可以pip)这里拿我的作为例子

在终端输入命令:

pip install tensorrt-8.4.1.5-cp37-none-win_amd64.whl

开始安装,安装完毕检查是否装上,继续终端输入命令:

pip list

这里补充一下我们还需要安装一个包,用来生成engine文件。

pip install onnxruntime

以上搞定我们的环境配置就已经完成,接下来就开始调试代码,代码好调就是配置这些环境会耗时间,这里我大概讲一下部署的流程,首先我们使用tensorrt部署的目的就是为了优化模型,这里我们就需要把我们的原始模型换成tensorrt可以接受的.onnx格式,这是一个中转,有了.onnx我们就可以通过使用tensorrt生成我们的tensorrt engine文件(生成tensorrt engine需要使用tensorrt runtime API接口),然后通过我们的tensorrt engine文件在进行推理对比。 就是这么简单!

打开代码的export.py文件

我们可以看到

–weight 使用的是我们需要优化的权重,我这里用yolov5s.pt为例

–opset 这里的参数如果你报错的话可以试着改小一点

–include填写的就是我们第一步生成的onnx文件

然后运行会发现在项目的同级别下生成了一个.onnx文件

然后继续通过上面的步骤 ,

–weight填写 yolov5s.onnx

–include 填写 engine

继续运行会发现在项目的同级别下生成了一个.engine文件

注:如果输入.onnx生成engine报错的话可以直接在–weight填我们需要优化的权重

–include 直接填写engine,因为直接生成engine的过程中也会升成一个.onnx。

感谢大家阅读!🙏🙏🙏

物联沃分享整理
物联沃-IOTWORD物联网 » TensorRT部署yolov5详解(Python实现,超详细)

发表评论