TensorRT模型压缩
>TRT加载模型,并构建TRT的引擎,主要分为6步:
- 1.建立一个logger日志,必须要有,但又不是那么重要;
- 2.创建一个builder;
- 3.创建一个network,这时候network只是一个空架子;
- 4.建立一个Parser,caffe模型,onnx模型和TF模型都有对应的paser,顾名思义,就是用来解析模型文件的
- 5.建议engine,进行层之间的融合或者校准方式,可以FP32,FP16或者INT8;
- 6.建立一个context,这个是用来做inference推断的。上面连接engine,下对应推断数据,所以称之为上下文联系器。
>FP16和INT8能加速的本质
通过指令或硬件技术,在单位时钟周期内,FP16和INT8类型的运算次数大于FP32类型的运算次数。
>FP16的模型文件大小要比原始的onnx模型小一半,INT8的模型文件大小要比FP16的模型小一半。例如原始的pytorch车道线模型大小为500M,转为onnx文件后大小为244M,FP16精度的engine文件大小为122.6M,INT8精度的engine文件大小为62.9M
2.FP16压缩
FP32压缩FP16的原理: