以yolov8为例
1. 转onnx
执行yolov8_onnx.py
中的export_onnx
函数,新增代码主要涉及输出格式的转换
2. 插入nms
使用utils.py
中的yolo_insert_nms
函数,导出onnx模型后使用Netron查看结构.
3. 转tensorrt
可以使用trtexec.md
中的的脚本转换,或者使用utils.py
中的Python代码转换
# trtexec -h
trtexec --onnx=./yolov8l_w_nms.onnx --saveEngine=yolov8l_w_nms.engine --buildOnly --fp16
4. trtexec测速
可以使用trtexec.md
中的的脚本转换,去掉--buildOnly
参数
5. profile分析(可选)
在4的基础之上加以下命令
nsys profile --force-overwrite=true -t 'nvtx,cuda,osrt,cudnn' -c cudaProfilerApi -o yolov8l_w_nms
6. Python测速或者部署
在Coco val数据集上测模型的平均速度使用trtinfer.py
中的代码推理