本篇主要介绍网络剪枝最后一层数值精度下溢调优
如有错误和不当之处,望指教!
根据我自己工作遇到的海思量化精度问题,以及如何改善和提升精度,整理记录而成。
回想一下上篇文章的遗留问题:
layer(name:413)连接fc层,不能对其修剪,所以权值偏小【精度下溢】的情况也迁移过来了。
如何处理这个问题呢?
之前一直听到过梯度裁剪【约束】,那么权重是不是也可以?反正剪枝完都要finetune的,稍微裁剪约束一下应该是没有问题的。经过实验,确实可以,美滋滋!
把约束前后的权重数值都保存一下:
# clip the last conv+bn
result1 = np.array(torch.flatten(newmodel.features[12].convbn.bn.weight.data.cpu()))
np.savetxt('/home/ir_20210812_s3_96_slimming/data3.txt',result1)
item_data = newmodel.features[12].convbn.bn.weight.