1.torch2trt 安装
git clone https://github.com/NVIDIA-AI-IOT/torch2trt
cd torch2trt
python setup.py install
2.转换模型
python tools/trt.py -n yolox-s -c yolox_s.pth
这个过程大约需要10分钟,生成的模型保存在:
YOLOX_outputs/yolox_s/model_trt.engine
报错问题记录:
AttributeError: 'tensorrt.tensorrt.Builder' object has no attribute 'max_workspace_size'
原因是Tensorrt8.0版本有变化,这个问题的解决方法是,降低 nvidia-tensorrt 的版本 到7.2.3.4
pip install nvidia-tensorrt==7.2.* --index-url https://pypi.ngc.nvidia.com
相应的编译C++的yolox代码也要使用tensorrt7.2.3.4
3.tensorRT 模型 Python 推理测试
python tools/demo.py image -n yolox-s --trt --save_result
# 或者
python tools/demo.py image -f exps/default/yolox_s.py --trt --save_result
4.COCO数据集评估
datasets/COCO/val2017$ find -type f | wc -l
5000
# 运行命令如下
time python tools/demo.py image -n yolox-s --trt --save_result --path datasets/COCO/val2017
5.下载安装Tensorrt7.2.3.4
重点,一定要和模型转换使用的版本一致!!!否则编译成功运行时会出现以下错误:
Version tag does not match. Note: Current Version: 43, Serialized Engine Version: 96)
连接下载
执行tar xzf解压
6.修改CMakeLists.txt
加入tensorrt,cuda,cudnn的include、lib目录
7.编译 tensorRT 模型 C++ 推理测试
make -j 顺利执行之后生成得到 可执行文件yolox* ,我们需要 ldd yolox
检查该文件依赖
./yolox ~/ai/yolox/YOLOX_outputs/yolox_s/model_trt.engine -i ~/Pictures/1.jpg