tensorRT是由Nvidia推出的一款GPU推理引擎(GIE: GPU Inference Engine)。由于训练好的神经网络权重已经确定,后续使用中无需后向传播以及高精度计算,因此在模型的部署过程中可以通过使用低精度如FP16(16位的float型)来对前向传播过程进行加速推断。Tensorrt正是利用此类原理来优化 GPU 资源使用的深度学习推理计算框架,其工作主要分为两个阶段:引擎构建和推理。在引擎构建阶段,TensorRT 接收外部提供的网络定义(也可包含权值 weights)和超参数,根据当前编译的设备进行网络运行的优化(optimization)并生成推理引擎 inference engine;在执行阶段,通过运行推理引擎调用 GPU 计算资源,整个流程如图 所示:
yolov4cfg下载.
yolov4weights下载.
1、 python yolov4_onnx.py --model name
(示例:python yolov4_onnx.py --model yolov4-608)
程序运行完成后会生成yolov4-608.onnx
2、 python onnx_to_trt.py 生成.trt引擎文件
1、 python yolov4_onnx.py --model name 生成.onnx文件
2、cd c++ 修改test/generateEngine.cpp 中的onnxfile路径
3、cd c++
4、mkdir build
5、cmake …
6、make
7、cd …/bin
8、./generateEngine 生成cached_model.bin
9、将生成的引擎拷贝到yolo目录下
cp cached_model.bin darknet_ros/darknet_ros/yolo_network_config/engine/yolov4_fp16.trt