tx2无法识别网络_CVPR2019 | Partial Order Pruning - 特定平台下的高效网络结构搜索

5678a516406ef438ba5e9016793d331a.png

这篇文章主要是介绍一下我们组被CVPR收录的工作中的一些思路,更多的细节和实验结果可以参考我们挂在arxiv的文章。主要的工作是公司大佬做出来的,我打了打下手,所以理解方面可能没那么深,欢迎大家交流批评指正。

1、Background

CNN在多个计算机视觉方向都有着重要的应用,但是需要消耗大量的计算资源,在嵌入式平台和移动平台的部署仍存在很大的困难。但是不同平台计算特性差异性非常大,即使是相同的平台,不同的实现框架的计算性能都可能会有所不同,设计出一个能最大化特定平台效率的网络结构,做到精度和速度的权衡,是一个非常重要的事情。

目前的NAS工作大多使用FLOPS等指标来衡量模型的复杂度和速度,但是这个指标无法将平台的计算特性考虑进搜索的过程。本文通过提出一种对搜索空间迭代剪枝的方式来做搜索,用训练出的已知模型来估计不需要再考虑的搜索空间,最终可以画出一条性能和延时的边界,也就得到了一系列帕累托最优模型。

2、Method

和已有的NAS算法类似,这部分依次介绍搜索空间构建、搜索算法和性能指标。

搜索空间如下图所示

a2cb2ea970b8402d53df31c70a516b48.png

其中stage 3-5是我们需要搜索的部分。经过评估,我们在TX2平台上选择了ResNet的building block为basic block。其中stage 3-5的block数量和宽度都是未知的,但我们人为规定了一个规则,就是后一层的宽度不能低于前一层,保证网络的通道数是一个单调不减的序列。对于搜索空间之中的每个网络,我们都使用了一个字符串去编码它的结构,如64-64——128-256——256就表示了stage 3有两层,宽度64,stage 4有2层,宽度128和256,stage 5有一层,宽度256 。

这样的话,网络的结构可以有无限种,搜索空间无限大,但很多模型是我们不需要的,也就是其推理时间不在区间内的模型。

这是因为我们关注的性能指标就是特定平台上的推理时间,我们并不需要在该平台下推理时间过长的模型。对于推理时间,我们与FBNet、ProxylessNAS的方法不谋而合,均是通过查找表去预测,实验发现这种方法确实是非常的稳定。

本文的核心,就在于下面要介绍的偏序关系。

我们通过实验发现,模型的结构之间可能存在着一些偏序关系,当两个网络存在偏序关系时,其性能与延时之间的关系也是确定的。值得注意的是,这样的偏序关系并不存在于搜索空间中任意一对模型,本算法所剪枝掉的,也仅仅是搜索空间中与已训练模型之间满足偏序关系的模型。

那么为什么要提出偏序关系呢?

3c41dfcef6880a18301421d36d6c35ea.png

以上图为例,搜索空间中每一个点都对应着上图坐标系中的一个模型。我们对找到的每一个w,都希望能得到与其相关的需要剪枝掉的搜索空间Pw,Pw代表着无论是速度还是精度都不如w的模型们,但是Pw这部分包含的模型究竟是什么样的呢?我们不知道。而且,Pw虽然位于w的左下区域,但并不代表分布于w左下的所有模型我们都不需要,Pw需要一个下界,否则我们可能剪掉了低延时下的边界模型。虽然Pw我们不知道,但是Pw中的一部分模型我们是知道的,这一部分就是和w存在偏序关系的模型,因为这些模型在图中的分布情况可以通过w进行估计。

最终整体的算法流程可以总结为:

1、从搜索空间中随机采样w

2、训练w,得到性能和估计的推理时间

3、得到yw,即已经训练出来的网络中比w性能好的最快的模型,yw的速度将会是Pw的下界

4、得到Pw,即与w存在偏序关系,可以估计出既不如w也不如yw的模型集合

5、从搜索空间中删除Pw模型,并回到步骤1,直到边界模型在一定迭代次数后不再更新

Partial Order Pruning不仅可以搜索classification的模型,加上decoder也可以搜索出一个segmentation的模型。

3、Experiments

在TX2平台上,我们取得了state-of-the-art的结果

354185042c4a218d336a895036f9726b.png

相比于轻量级网络,我们的model size和flops虽然大很多,但是因为部署在TX2平台,反而速度更快。

同样segmentation任务上我们的结果也非常不错,但是这部分做的比较仓促没什么时间,没有怎么调参就submit,就不多介绍了。

在手机端,我们也做了一些工作,主要是为了展示算法的拓展性,使用了腾讯开源的ncnn框架做推理。在我自己用的mi8高通845上,我们也搜索了一些模型并选择了其中一个作为segmentation的backbone,据我所知,应该是目前首个在手机上用384x640分辨率跑cityscapes的吧。运行的视频录屏如下所示:

a403737d6f061142fcf0ae9be57f9138.png
Demo of POP algorithmhttps://www.zhihu.com/video/1124770096358457344

帧数稳定在40,还是比较流畅的,人去不了CVPR,那就只有Demo去咯 : )

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值