一般来说模型剪枝之后精度都会下降,微调之后会恢复一部分,但仍然达不到剪枝前的精度,因此蒸馏会在微调阶段配合使用
蒸馏是一种基于“教师-学生网络”的训练方法,教师模型参数量较大,效果更好,学生模型参数量较少,效果较差,蒸馏即让小模型学习大模型的知识,提升小模型的精度。因此需要准备教师模型和学生模型,在网络剪枝训练中一般教师模型为剪枝前的模型,学生网络为剪枝后的模型。
基本流程:
yolov5剪枝后的模型蒸馏:
在train.py中添加如下代码:
parser.add_argument('--t_weights', type=str, default= 'models/yolov5s.pt', help