TensorRT加速ENet
1. 训练ENet
- ENet模型caffe版本的git地址:https://github.com/TimoSaemann/ENet
- 修改训练ENet的prototxt,把原版的上采样中type为Upsample改为Deconvolution,否则转ncnn会出问题,估计转TRT也会有问题吧,反正影响不大就换了。
- 修改prototxt把PReLU改为ReLU,因为我用的TensorRT v5.1.5.0不支持PReLU
- train和deploy的height,width,classNum
- 训练数据的路径,指定一个txt文件,每行用空格分开,一个图(数据)对应一个图(标,单通道,每个类别对应一个数)
2. 生成部署ENet的模型
- 计算bn的参数为静态的(参考git上的Tutorial)
- 把bn和卷积合并使前向运算加速
3. 生成用于TensorRT调用的engine文件
- 先编译出来用于模型转换的可执行文件,我命名为buildEngine,在编译的过程中会打印出输入和输出的节点名
- 执行命令 ./buildEngine --deploy=enet.prototxt --model=enet.caffemodel --saveEngine=enet.engine --output=“deconv6_0_0”