TensorRT加速应用
TensorRT加速應(yīng)用?
tensorrtx下載
TensorRT是一個C++版本的深度學(xué)習(xí)架構(gòu),和tensorflow、pytorch是平行關(guān)系。我們想用TensorRT部署yolov5到開發(fā)板,那就分為兩步,1.安裝TensorRT,2.用TensorRT的語法重寫各訓(xùn)練框架訓(xùn)練的網(wǎng)絡(luò)。但是用TensorRT自己寫一遍網(wǎng)絡(luò)真的太麻煩了,我們也不會。那我們就可以用tensorrtx,這位大神用TensorRT的語法復(fù)現(xiàn)了各種經(jīng)典網(wǎng)絡(luò):
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-D45QQ1Jc-1642325226242)(TensorRT加速應(yīng)用.assets/image-20220115200209423.png)]
網(wǎng)絡(luò)之多,一張截圖放不下,基本主流的網(wǎng)絡(luò)都已經(jīng)能夠轉(zhuǎn)化
相當(dāng)于把第2步幫我們做好了,這一個至關(guān)重要,它能將各框架訓(xùn)練的模型文件轉(zhuǎn)變成tensorrtx支持的文件。
但是他對我們的環(huán)境提出了要求:
-
要求一:tensorrtx要求cuda10.0 / cudnn7.6.5 / TensorRT7.0.0
-
要求二:CUDA10.0要求顯卡驅(qū)動高于410.48
-
顯卡對驅(qū)動的要求:
使用ubuntu-drivers devices來查看支持的顯卡驅(qū)動, 如果發(fā)現(xiàn)支持的驅(qū)動全都沒超過410.48,那這條路就走不通了。 如果支持>= 410.48的驅(qū)動,但你現(xiàn)在使用不是它, 那么可以用sudo apt install nvidia-driver-xxx來安裝 -
CUDA10.0的要求(其他版本的CUDA要求在這里):對ubuntu版本,系統(tǒng)內(nèi)核,gcc,glibc的要求,
也就是我們要有:
- 顯卡驅(qū)動,自行前往官網(wǎng)安裝,或者敲命令安裝就好了
- >CUDA10.0,可以參考部署cuda和cudnn
- >cuDNN7.6.5,可以參考部署cuda和cudnn
- >TensorRT7.0.0.11,可以參考部署tensorrt
- >opencv3.4.15,可以參考部署opencv
代碼下載:
需要用到兩個代碼:
-
yolov5 官方源碼 ,并配置好環(huán)境(最好是conda虛擬環(huán)境)
cd ~ git clone https://github.com/ultralytics/yolov5 cd yolov5 pip install -r requirements.txt python detect.py運行之后,可以自動幫你下載yolov5s.pt,需要聯(lián)網(wǎng),搞不定的話也可以直接去github下載,這個pt文件十分重要,后面加速應(yīng)用會用到
-
tensorrtx 源碼
cd ~ git clone https://github.com/wang-xinyu/tensorrtx
獲得.wts文件
將下載得到的yolov5s.pt文件復(fù)制到tensorrtx/yolov5目錄下,運行g(shù)en_wts即可得到.wts文件,這里共用yolov5的配置環(huán)境即可
python gen_wts.py yolov5s.pt運行完成之后會得到y(tǒng)olov5s.wts
編譯運行,獲得.engine文件
在編譯運行之前,回顧TensorRT的安裝是用deb包安裝,還是從tar壓縮包安裝的,如果是從tar壓縮包安裝,這一步必不能省略,否則無法編譯完成
編輯tensorrtx/yolov5目錄下的CMakeLists.txt:
# 替換這兩行 include_directories(/usr/include/x86_64-linux-gnu/) link_directories(/usr/lib/x86_64-linux-gnu/)include_directories(/home/{user_name}/TensorRT-{version}/include/) link_directories(/home/{user_name}/TensorRT-{version}/targets/x86_64-linux-gnu/lib/) # 保存退出{user_name}:用戶名
{version}:TensorRT版本
cd ~/tensorrtx/yolov5 mkdir build cd build cp ../yolov5s.wts ./ cmake .. make # -s 命令用于生成.engine文件,三個參數(shù)分別是.wts文件,.engine文件和model標(biāo)識[s/m/l/x/...] ./yolov5 -s yolov5s.wts yolov5s.engine s # -d 命令用于執(zhí)行推理,兩個參數(shù)分別是engine和要測試的目錄 ./yolov5 -d yolov5s.engine ../samples運行沒報錯,就可以在build文件夾里看到帶框的zidane.jpg了
個參數(shù)分別是engine和要測試的目錄
./yolov5 -d yolov5s.engine …/samples
總結(jié)
以上是生活随笔為你收集整理的TensorRT加速应用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Unity LOD-Level of D
- 下一篇: 马士兵 java se_马士兵javas