(2022.05.25更新)实现TensorRT加速Pytorch模型的过程(Yolov5为例)
一、环境:
系统:ubuntu20.04
显卡:GeForce TiTan 1080Ti
显卡驱动:470以上
CUDA与CUDNN版本:cuda10.2.89, cudnn8.1
TensorRT版本:8.0.0.3
Cmake版本:3.23
Gcc & G++版本:9
Opencv版本:4.5.3
二、安装过程(以Yolov5为例)
1、首先安装TensorRT
参考:https://zhuanlan.zhihu.com/p/344810135
下载该链接下的TensorRT,对应cuda版本(https://link.zhihu.com/?target=https%3A//developer.nvidia.com/nvidia-tensorrt-download)
在.bashrc文件中添加以下内容:
export TRT_PATH=/your/path/to/TensorRT-8.0.0.3
export PATH=$PATH:$TRT_PATH/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TRT_PATH/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TRT_PATH/targets/x86_64-linux-gnu/lib
注意点:如果在安装后import tensorrt出现ImportError: libxxx.so.10.2: cannot open shared object file: No such file or directory,原因是TensorRT的链接库路径丢失,利用ldconfig检查,并且利用sudo ln -s xxxxxxxxxxxxxxxxx.so.10.2 xxxxxxxxxxxxx.so,建立软链接
其余注意点有,cuda版本至少10.0以上,cudnn版本根据tensorrt的版本选择,并且显卡驱动的版本支持当前的cuda等环境的要求。
2、安装转化的源代码(https://github.com/enazoe/yolo-tensorrt)
(1) 建立一个文件夹:mkdir yolo_tensorrt_test
(2) 进入文件夹后
git clone https://github.com/ultralytics/yolov5.git
git clone https://github.com/enazoe/yolo-tensorrt.git
(3) yaml2cfg.py将脚本复制到yolov5根目录,并生成cfg和weigths文件
cp yolo-tensorrt/scripts/yaml2cfg.py yolov5/
cd yolov5
python yaml2cfg.py
cd ..
mv yolov5/models/yolov5s.cfg yolo-tensorrt/configs/yolov5-4.0
mv yolov5/weights/yolov5s.weights yolo-tensorrt/configs/yolov5-4.0
(4) 进入yolo-tensorrt文件夹
首先更改Cmakelists.txt文件(很重要!很重要!很重要!)
在#detector lib (cuda)之前,添加代码
include_directories(/home/qsm16/TensorRT-8.0.0.3/include/)
link_directories(/home/qsm16/TensorRT-8.0.0.3/lib/)
link_libraries(nvinfer nvinfer_plugin nvparsers nvonnxparser)
(并且在build前,应当保证gcc与g++的版本要求)
然后编译源码
mkdir build && cd build
cmake ..
make
./yolo_trt
完成安装!
上述过程亲测有效,另外有其他问题欢迎一起探讨,并且该版本代码为c++,另有python版本的实现,因为有完整的过程我仅将github链接放在这里供大家参考
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库