前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >剪枝实践:图像检索如何加速和省显存 ?

剪枝实践:图像检索如何加速和省显存 ?

作者头像
CV君
发布2020-02-21 12:37:54
7650
发布2020-02-21 12:37:54
举报

本文转载自知乎,已获作者授权转载,请勿二次转载。

https://zhuanlan.zhihu.com/p/104447447

本文介绍我们最新的工作《Progressive Local Filter Pruning for Image Retrieval Acceleration》,采用剪枝方法解决深度网络图像检索的加速问题。

一、简介:

近年来,深度学习在图像检索领域取得了“垄断性”地位,而“深”层网络的应用,如Resnet, Densnet等,也在不断刷新图像检索领域的记录。然而,鲜有文章关注检索速度的优化。在实际应用中,图像检索速度是考核应用系统重要指标之一。

为提高图像检索网络的执行效率,模型压缩是一种可行的方案。现有模型压缩方法大多用于解决分类任务,其网络输出为离散的类别信息。与分类任务不同,图像检索网络的输出一般为连续的特征数据。

因此,图像检索网络对于压缩算法更加敏感。也就是说,网络微小改动,可能导致输出特征发生较大变化。为解决此问题,我们提出以下两点解决方案:

二、方法:

1. 尽量保持卷积层filter的原有分布

图1 不同剪枝方法对filter分布的影响

现有剪枝方法中,全局-中心(global center-based)法是一种被广泛应用的方法:针对某一卷积层,该类方法首先选定一个参考中心点,然后根据filter与该中心点的距离对filter进行排序,离中心越近的filter将会被优先删除(如图1(a)左边图中红色的圆点)。

然而,该剪枝方式容易造成剪枝后filter分布出现较大变化(如图1(b)的中间图)。

为解决这一问题,我们采用基于局部的方法:优先选择并删除局部关系最紧密的filter,即若某个filter与其邻接的filter足够相似,则其可被安全删除(如图1(a)右边图中红色的圆点)。由于该方法是对filter的局部修改,因此易于保持filter的整体分布不变(如图1(b)最右侧图)。

2. 尽量保持预训练模型的表征力(Representation ability)

我们希望尽量保持预训练模型表征力不变。然而,删除filter容易造成网络容量(Capacity)变小,进而影响网络输出特征。软剪枝(Soft pruning)类方法将待删除filter先置0,并在微调(finetune)过程中给予其一定机会恢复权重,能够在一定程度上缓解直接删除filter带来的网络容量损失的问题。但若删除filter的比例较大时,其也会严重影响网络表征力。为此,我们提出一种filter权重衰减策略,在训练过程中对待删除filter的权重缓慢减小,即权重乘以衰减因子г,直至其收敛为0或接近于0。

图2 剪枝方法流程

图2展示了我们方法的框架。以图中第二层网络为例,首先根据该层中filter的局部信息,筛选出冗余filter(如橘色的方框)并减小其权重值。在下一次训练(Epoch)中,所有的filter(包括冗余filter)又重新被finetune一次,这时如果有的冗余filter比较重要,则其权重会被重新恢复(如绿色方框)。重复执行此过程,直至冗余filter的权重均被置为0或者接近于0。这时,我们再从网络中删除这些冗余的filter得到压缩后的网络。

三、实验结果-局部信息重要性

我们在两个图像检索(基于VGG-16)数据集Oxford5K和Paris6K,和一个行人重识别(基于Resnet-50)Market-1501数据集上验证了所提出的方法。

表1显示了我们方法在行人重识别Market-1501数据集上的效果,其中k代表局部信息计算的范围,k越大则将在对每一个filter排序时考虑其更多邻接信息。

表1 不同方法行人重识别Market-1501数据集上的效果

从图中可以看出,我们的方法在不同剪枝比例上均优于其它方法,且剪枝比例越大,优势越大。当删除90%的filter时,我们的方法在mAP上至少超越其它方法8%。说明局部剪枝相对全局剪枝具有较大的优势。同时,我们发现,当剪枝比例较少时,大k容易获得好的效果,反之,当剪枝比例较大时,小k更有优势。这一现象有利于我们确定k的值。

同样,如下表,在图像检索应用上,我们方法同样能够在压缩率较高或者相当的情况下,取得要优于其它方法的结果。

四、实验结果-权重衰减的重要性

下图展示了我们的方法在给定不同权重衰减因子г的mAP值变化情况,其中,г越大权重衰减速度越慢,反之衰减越快。可以看出,当剪枝比例较小时,方法对于г并不敏感,反之,当剪枝比例较大时,较小г有利于获得好的结果。

同时,我们也对比了不同算法剪枝后网络(剪枝比例90%)与原始模型(未剪枝)输出特征的欧氏距离。从下表可以看出,我们的方法与原始模型输出特征最为接近。以上实验结果也验证了我们之前的假设,即当剪枝比例较大时,权重衰减策略有利于保持预训练模型表征力。

五、实验结果-特征图

下图我们的方法中(在剪枝90%情况下)Resnet-50第一个卷积层特征图(feature maps)(下标从0至63),其中红色边框图表示被剪枝的特征图。可以看出,这些被剪枝的特征图包括了行人的上衣(59)、帽子(57)、裤子(28)等的特征,这些图均可被其它特征图取代,如上衣(11,42),帽子(1,53),裤子(20,22)等。

文章链接:

https://arxiv.org/abs/2001.08878

目前作者在整理代码,后续会开源,欢迎大家持续关注。


本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-02-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 我爱计算机视觉 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
人体分析
腾讯云神图·人体分析(Body Analysis)基于腾讯优图领先的人体分析算法,提供人体检测、行人重识别(ReID)等服务。支持识别图片或视频中的半身人体轮廓;支持通过人体检测,识别行人的穿着、体态等属性信息。可应用于人像抠图、背景特效、人群密度检测等场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档