01 (避坑)Windows环境下Tensorrt(Python和C++)环境
-
安装CUDA:11.60版本。地址:https://developer.nvidia.com/cuda-11-6-0-download-archive,安装一路next即可。
-
下载CUDNN:8.6.0.163版本。地址:https://developer.nvidia.com/rdp/cudnn-archive
- 注意解压CUDNN后,将文件夹里的内容全部复制到CUDA路径下。(下图中的四个文件就是CUDNN解压后的文件)
-
-
安装Tensorrt
链接:https://developer.nvidia.com/nvidia-tensorrt-download
安装下面图片版本:
-
给环境安装tensorrt
-
解压tensorrt,在python目录下执行下面命令。
pip install tensorrt-8.5.3.1-cp38-none-win_amd64.whl
-
此外需要将一些动态链接库copy到cuda路径下(tensorrt的lib文件->cuda的bin文件)。
-
-
-
-
安装zlibwapi.dll文件(安装cu116版本的pytorch可以避免这个错误)。地址:http://www.winimage.com/zLibDll/
- 下载后拷贝到Cuda的bin文件下。
-
onnx相关的库,使得模型能够转换成onnx格式。
pip install onnx
测试
- 导出engine文件(tensorrt对应的文件)
我来说一下我遇到的问题和解决方案,第一个问题是TensorRT: export failure 0.0s: 【WinError 127】,
解决方案是激活环境后输入pip install torch==1.13.1+cu116 torchvision==0.14.1+cu116 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu116,更新torch三件套版本,保证其和CUDA11.6兼容
第二个问题是TensorRT: export failure 74.2s: failed to export ONNX file: yolov5s.onnx,解决方案是输入pip install onnx==1.14.0,因为up教程里直接输入pip install onnx,会默认安装onnx最新版本,1.15.0和1.16.0和CUDA11.6并不兼容,降低版本到1.14.0或者1.13.0即可
执行这两条命令后即可正常推理,下图为执行完成后的结果,可以看到也有推理所需要的代码。
使用下面代码对自带的一张图片进行推理,训练结果如下:
python detect.py --weights yolov5s.engine --source ./data/images/bus.jpg
使用tensorrt加速:
未使用tensorrt加速:
可以看出速度大概提升了3倍多。
C++开发 配置C++的开发环境参考下面链接即可
https://blog.youkuaiyun.com/weixin_52907730/article/details/129416349
其他
报错:
AttributeError: module ‘numpy‘ has no attribute ‘bool
解决安装1.23.2版本的numpy。
pip install numpy==1.23.2