一种新的剪枝方法

现在是2020年9月14日。

背景

不知道别人有没有写过相关的论文。下面开始正文。

我先拿一个训练好的模型中conv层的w来说。下图是第一层的conv的w。每条线为一个维度的w。w得形状为[7x7x16x16]

这个图对于人来说无法读取其中规律信息,放大局部来看看.

观查211点,可以发现,大部分都是’上坡‘到达211。有少部分是下坡到达。观察其他点也有类似情况,很多点呈现一种变化趋势,而少部分点正好相反。剪枝准寻‘法不责众’得原则。这里可以做两点内容,稀疏化,然后retrain。或者统计这种规律,剪掉出现这种相反规律多的层。如果有自己有细粒化剪枝,这里做起来效果会更好,可惜这种框架需要自己花大量时间去写。

下面说说一些细节问题。

方法

就是算梯度。然后组成一个数组L,大于0得表示正向,小于0得表示负向。

\delta = \frac{w_i -w_{i-1}}{1}=w_i -w_{i-1}

不一定都要保存正向,要做同进,把数据L符号化,然后进行算吧。

稀疏化

稀疏化是提高模型精度得很好的办法,这里可以把某一索引位置,少众部分初始化为0,然后再次训练。很容易提高精度。

剪枝

这个就是做统计了,统计单层得conv中得w。w中哪个维度出现少众比较多,说明他在卷积计算中重要性较差,应该北京掉。


剪枝记住一点,法不责众。

猜你喜欢

转载自blog.csdn.net/weixin_39875161/article/details/108590752
今日推荐