Loading

深度网络重参数化

最近看知乎推送的CVPR2022的一篇论文的时候发现文章提到了re-parameterized这个词,搜了一下发现了作者关于重参数化的一个报告,于是简单记录了一下~

什么是重参数化(re-parameterized)

常规思想:对于一个卷积层需要的参数是\(D\times C\times K\times K\),训练出来的参数就是\(D\times C\times K\times K\)

重参数化方法:训练时用的是另一套不同于\(D\times C\times K\times K\)的参数,训练完后等价转换为\(D\times C\times K\times K\)用于推理。

意义:提高模型的性能,改变模型的结构。

关键之处:想出重参数化的形式(如何不同于原来的);找到对应的转换方法;如何利用这种形式达到目的;

作者的ICCV2019的一个工作ACNet:

截屏2022-03-24 16.48.57

训练时多训一会,部署时模型跟以前一样却能获得性能提升。

截屏2022-03-24 16.53.54

重参数化的另一个应用是改变模型结构。

背景:Channel pruning

效果:把卷积层输出通道变小(把层变窄)

难点:CNN的精度与宽度密切相关,如何在减小宽度的时候保证精度不降低则是一个关键问题。

给定一个训练好的模型,通常的做法是:

根据某些标准选择某些channel,将其剪掉,调整网络的结构,做fine tune。

加入某种约束,训练,使得某些channel接近0,剪掉,finetune。

截屏2022-03-24 17.46.03

posted @ 2022-03-24 18:13  脂环  阅读(3020)  评论(0编辑  收藏  举报