《NetAdapt:Platform-Aware Neural Network Adaptation for Mobile Applications》论文笔记

代码地址:netadapt

1. 概述

导读:这篇文章提出了一个新的网络压缩算法NetAdapt,它使用一个预训练好的模型在固定计算资源的手机平台上进行压缩试验,因而可以直接采集压缩之后的直接性能表现(计算耗时与功耗)作为feedback,文章指出其为direct metrics。像连乘累加操作(MACs)和网络权重数量这些常规的间接测量方式并不能很好反应网络的性能,这是因为它们与计算耗时和功耗并不直接关联。文章提出的方法实验在MobileNetV1&V2上达到了1.7倍的计算时间加速,并且取得网络性能持平甚至反超。

前文中提到间接的网络压缩测量指标并不能很好反应实际上的性能表现,它们之间是存在高度的非线性关系并且依赖于使用的平台,下表1就很好展示了间接度量指标于实际性能表现的关系(间接指标好的不一定实际性能就好):
在这里插入图片描述
在设计高效的网络结构的时候一般有2种常用的方法:

  • 1)不管所在的平台统一设计单一的网络模型,但是这样会使得所设计的网络模型在不同的平台上表现就并不相同,如台式机的CPU于手机的CPU设备;
  • 2)在给定的平台硬件设备上手工设计对应的网络结构,这就需要了解详细的底层硬件知识,换了平台之后又得重新设计;

对于上面的两种网络设计的优缺点,文章提出了一种网络压缩的方法NetAdapt,它将优化之后的网络部署到设备上直接获取实际性能指标,之后再根据这个实际得到的性能指标知道新的网络压缩策略,从而以这样迭代的方式进行网络压缩,得到最后的结果,其算法流程见下图1所示:
在这里插入图片描述

2. 方法设计

2.1 算法流程

在之前的一些优化策略中给定一个目标函数(一般为分类网络的精度),在给定各个资源的限制条件,组成一个最优化表达式。这篇文章中对其进行了修改,使用迭代的方式进行优化,每次对应资源优化的步长为 Δ R i \Delta R_i ΔRi,因而文章对于网络的优化问题可以描述为下面迭代优化的形式:
max ⁡ N e t i A c c ( N e t i ) \max_{Net_i} Acc(Net_i) NetimaxAcc(Neti)
s . t . R e s j ( N e t i ) ≤ R e s j ( N e t i − 1 ) − Δ R i , j , j = 1 , … , m s.t. Res_j(Net_i)\le Res_j(Net_{i-1})-\Delta R_{i,j},j=1,\dots,m s.t.Resj(Neti)Resj(Neti1)ΔRi,j,j=1,,m
具体的文章使用一个迭代的优化策略去优化这个目标函数,其算法流程如下:
在这里插入图片描述
另外一种更加直观的流程图方式见下图2所示:
在这里插入图片描述

2.2 算法步骤

文章算法的核心在于如下步骤:

  • 1)step1:按照给定的资源约束选择当前层需要剪掉的filter数量,文章中是基于在实验平台上实验得到的结果进行选择剪裁的数量,在对应的filter被剪裁掉之后与之对应后续层的channel数也应做相应的修改;
  • 2)step2:在确定好需要剪裁掉的filter数量之后就需要确定那些不重要的filter需要被剪裁掉。对此,文章使用的重要性选择方式是使用上一轮迭代产生的梯度信息,将其L2-norm,之后按照其值选择最不重要的几个将这些filter裁掉。除了这种基于梯度的方法还可以使用基于特征图间相互作用的方法,例如使用Lasso回归。
  • 3)step3:对当前裁剪的层进行short-term的finetune使其恢复精度。在所有的层完成裁剪之后选择其满足资源需求且finetune之后网络性能最好的一个;
  • 4)step4:判断当前迭代论述的模型是否满足算法预先设计的资源需求限制,若满足则对模型进行long-term的finetune得到最后的结果;

思考:文章的方法是在每个层上进行剪裁,也就是说每个层基本上是相互独立的,那么这样的方式结果是最优的吗?

2.3 快速资源消耗估计方法

使用文章对于修改之后网络的资源消耗估计方法(直接在设备上运行,得到测量结果)是相当耗时且代价高昂的,为此文章提出了一种资源消耗估计的方法用以解决这个问题。

在文章中预先统计每个层中资源消耗的数据得到一个查询表,之后在进行裁剪的时候直接查表就可以得到是否满足对应的资源需求,如下图所示:
在这里插入图片描述
对于网络中具有相同filter shape和特征图尺寸的层来说它们的资源统计数据是可以共享的,这样可以减少部分建表时间。之后文章将通过表查询得到的结果于实际设备测量得到的实验结果进行比较其结果见下图所示:
在这里插入图片描述

3. 实验结果

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值