在实际PTQ
或者QAT
过程中,我们不知道哪些层属于敏感层
,从而在量化的过程中跳过这些层,所以就需要进行敏感层分析。通过分析每层是否量化对map或者是精度的影响程度,从而确定敏感层。
在做PTQ或者QAT前,建议先进行敏感层分析,从而跳过这些敏感层不量化,使得最终的量化精度最高
。
敏感层分析步骤
第一步:
加载Torch框架训练完成的模型第二步:
手动替换模型的算子为quant_nn的算子,同时也要考虑敏感层的加入第三步:
制作校准所需的Dataloader,这里选择YOLOv5官方的即可第四步:
校准模型第五步:
敏感层的分析,主要是通过关闭不同的层的量化,进行进度的对比
步骤其实和PTQ量化的步骤基本上是一样的,主要区别在第二步敏感层的加入
以及第五步的敏感层的分析
。 其中加载模型,dataloader,以及模型校准是和上文PTQ量化分析是一模一样的。
敏感层