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