前两篇文章讲解了yolov5的敏感层分析及ptq量化流程,本篇文章在前两篇文章的基础上,继续讲解yolov5的qat量化流程。
ptq和qat的区别如下所示:
qat量化流程如下所示:
- 首先在数据集上以FP32精度进行模型训练,得到训练好的baseline模型;
- 在baseline模型中插入伪量化节点,
- 进行PTQ得到PTQ后的模型;
- 进行量化感知训练;
- 导出ONNX 模型。
与传统量化方案的使用label进行监督不同,这次的qat量化方案,直接使用图片进行qat量化,即与ptq统一使用一个dataloader,且不使用标签数据进行qat的量化训练,即可得到一个不错的模型结果:
接下来会根据如下流程详细介绍qat方案的具体操作:
第一步至第四步,在前两篇文章中已经详细的介绍了,此处不作多余解释;第五步qat微调的操作,关键点在于如何选择网络层以及train的过程。
1、选择层的函数: