ShuffleNet V2論文解讀


摘要

論文地址:https://arxiv.org/pdf/1807.11164.pdf
作者:Face++
概述:論文指出現(xiàn)在的網(wǎng)絡通常使用間接量來度量計算復雜度(例如FLOPs)全跨,然而實際的運行時間受到很多其他因素的影響例如內(nèi)存訪問開銷(memory access cost)和平臺的特性熔任,如下圖所示凌那,同樣的FLOPs卻有著截然不同的運行速度

ShuffleNet v2 Fig1.png

直接度量(speed)和間接度量(FLOPs)之間的差距在于主要存在于

(1)許多其他的因素也會影響運行的速度拭抬,這是FLOPs不能考慮到的,比如內(nèi)存訪問開銷(MAC)沦疾,分組卷積就會有著非常高的MAC称近;另一個常見因素是網(wǎng)絡的并行程度第队,在相同F(xiàn)LOPs的條件下,并行度高的網(wǎng)絡要比低的網(wǎng)絡速度更快
(2)平臺的不同刨秆,相同的FLOPs在不同的平臺上可能有著不同的運行時間凳谦,我們不能簡單地認為3\times 3卷積的運行時間就是1\times 1卷積的九倍

于是文章提出了在設計高效網(wǎng)絡時的兩個準則

(1)采用直接的度量方式(例如speed),而不是間接地
(2)要在目標平臺上進行估計


網(wǎng)絡設計準則

采用的硬件設施:
?GPU ———— NVIDIA GeForce GTX 1080Ti + cuDNN 7.0
?ARM ———— 高通驍龍810

實驗可得坛善,F(xiàn)LOPs并不是一個能足夠精確估計實際時間的度量


ShuffleNet v2 Fig2.png

G1 相同通道數(shù)能夠減小內(nèi)存訪問開銷

首先對depthwise separable convolutions中的1\times 1卷積進行分析晾蜘,一次卷積的FLOPs為 B = hwc_1c_2,由此計算MAC = hw(c_1 + c_2) + c_1c_2眠屎,然后利用均值不等式可得
MAC \geq 2\sqrt{hwB} \ + \frac{B}{hw}
然后將B = hwc_1c_2帶入可得到結(jié)論剔交,當輸入輸出通道數(shù)相等時,MAC最小

ShuffleNet v2 Tab1.png

當輸入輸出通道數(shù)相同時改衩,MAC最小岖常,運行速度更快,因此網(wǎng)絡設計時葫督,應盡可能地使輸入輸出通道數(shù)之比盡可能等于1

G2 過多的組卷積增加MAC

分組卷積大大減少了計算復雜度(FLOPS)竭鞍,也能夠增加網(wǎng)絡容量,但隨之帶來的是MAC的增加橄镜,分組卷積的MAC
MAC = hw(c_1 + c_2) + \frac{c_1c_2}{g} = hwc_1 + \frac{Bg}{c_1} + \frac{B}{hw}
其中g是組卷積的個數(shù)偎快,F(xiàn)LOPs為B = hwc_1c_2/g,容易得出洽胶,給定輸入c_1 \times h \times w和計算量B晒夹,MAC隨著g的增加而增加

ShuffleNet v2 Tab2.png

組卷積的使用建議:具體的分組數(shù)要根據(jù)實際的目標平臺和任務來選擇,單純的因為組卷積能夠增加通道數(shù)從而較為容易的增加準確度而使用大量的組卷積是不明智的選擇

G3 網(wǎng)絡的分支會影響并行程度

盡管多分支結(jié)構(gòu)的網(wǎng)絡能夠提高準確度姊氓,但是對并行計算能力不強的GPU來說丐怯,會大大減小運行效率。為了量化網(wǎng)絡分支如何影響網(wǎng)絡運行效率翔横,作者對一系列具有不同程度的網(wǎng)絡塊(blocks)進行了評估读跷,如下圖所示


ShuffleNet v2 App1.png
ShuffleNet v2 Tab3.png

網(wǎng)絡的分支數(shù)增加會減慢網(wǎng)絡運行速度

G4 Element-wise操作并不能忽略

ShuffleNet v2 Fig2.png

如圖2所示,element-wise操作占據(jù)了相當大一部分時間禾唁,尤其是在GPU上效览,這些操作包括:ReLUAddTensor荡短、AddBias等等丐枉。它們都有著較小的FLOPs但卻有較大的MAC,應該將depthwise convolution也視為一種element-wise操作因為它也有著較高的
MAC/FLOPs
比率
ShuffleNet v2 Tab4.png

移除ReLU和shortcut肢预,網(wǎng)絡速度提高了20%

結(jié)論

通過上述的分析矛洞,我們得出了一個高效的網(wǎng)絡結(jié)構(gòu)應該盡可能的根據(jù)如下原則去設計

(1)使用 balanced 卷積(即輸入輸出通道數(shù)相同)
(2)小心使用組卷積來防止大的內(nèi)存開銷
(3)減少網(wǎng)絡的分支
(4)減少 element-wise 操作


ShuffleNet V2:全新高效的網(wǎng)絡結(jié)構(gòu)

Review of ShuffleNet v1

ShuffleNet v2 Fig3.png

為了增加通道數(shù)但又不顯著增加FLOPs洼哎,主要有以下兩種方法:(1)pointwise group convolution烫映;(2)bottleneck-like structures 沼本。然而以上兩種方法都會增加MAC(G1 G2),尤其是在輕量級的網(wǎng)絡中锭沟。此外抽兆,使用太多的組卷積違背了 G3 原則。shortcut中的逐個元素的 “+”操作也不可忽視(G4

實現(xiàn)高容量且高效率模型的關(guān)鍵在于如何既不使用 dense convolution(通過增加輸出卷積核數(shù)目來增加通道數(shù)) 也不使用過多 組卷積 來保證通道數(shù)目多且等寬

ShuffleNet V2

ShuffleNet v2 Fig3(c).png

基于上述啟發(fā)族淮,提出了一種名為 channel split 的操作辫红。如圖3(c)所示(上圖),輸入特征通道c被分為兩個分支cc'祝辣,符合 G3 贴妻,一個分支保留自身映射,另一個分支包含三個有著相同輸入輸出的通道來滿足 G1 蝙斜,兩個1\times 1卷積不再是組卷積名惩,部分符合 G2 原則,之所以說部分符合是因為分離操作已經(jīng)產(chǎn)生了兩個組孕荠。經(jīng)過卷積層后娩鹉,兩個分支開始進行融合,通道數(shù)保持不變(G1)稚伍,然后經(jīng)過 Channel Shuffle 層弯予,一個單元結(jié)束。
在shuffling之后个曙,下個單元開始锈嫩,注意在ShuffleNet v1中 Add 操作不復存在,ReLUdepthwise convolution只存在于一個分支困檩。而且祠挫,三個連續(xù)的逐個元素操作 “Concat” “Channel Shuffle” 以及 “Channel Split”合并為一個 element-wise操作,根據(jù)G4悼沿,這些改變有利于提高網(wǎng)絡效率等舔。

ShuffleNet v2 Fig3(d).png

完整的網(wǎng)絡結(jié)構(gòu)是由上述blocks堆疊而成,簡單起見糟趾,設置c' = c/2慌植,整體的網(wǎng)絡結(jié)構(gòu)與ShuffleNet相似,有一個不同之處在于\it \text{global averaged pooling}后加入了一個額外的1\times 1卷積層用于融合特征义郑。

ShuffleNet v2 Tab5.png

ShuffleNet v1和ShuffleNet v2網(wǎng)絡對比

ShuffleNet v2 Fig3_1.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蝶柿,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子非驮,更是在濱河造成了極大的恐慌交汤,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,000評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異芙扎,居然都是意外死亡星岗,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評論 3 399
  • 文/潘曉璐 我一進店門戒洼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來俏橘,“玉大人,你說我怎么就攤上這事圈浇×绕” “怎么了?”我有些...
    開封第一講書人閱讀 168,561評論 0 360
  • 文/不壞的土叔 我叫張陵磷蜀,是天一觀的道長召耘。 經(jīng)常有香客問我,道長褐隆,這世上最難降的妖魔是什么怎茫? 我笑而不...
    開封第一講書人閱讀 59,782評論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮妓灌,結(jié)果婚禮上轨蛤,老公的妹妹穿的比我還像新娘。我一直安慰自己虫埂,他們只是感情好祥山,可當我...
    茶點故事閱讀 68,798評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著掉伏,像睡著了一般缝呕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上斧散,一...
    開封第一講書人閱讀 52,394評論 1 310
  • 那天供常,我揣著相機與錄音,去河邊找鬼鸡捐。 笑死栈暇,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的箍镜。 我是一名探鬼主播源祈,決...
    沈念sama閱讀 40,952評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼色迂!你這毒婦竟也來了香缺?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,852評論 0 276
  • 序言:老撾萬榮一對情侶失蹤歇僧,失蹤者是張志新(化名)和其女友劉穎图张,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,409評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡祸轮,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,483評論 3 341
  • 正文 我和宋清朗相戀三年姑隅,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片倔撞。...
    茶點故事閱讀 40,615評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖慕趴,靈堂內(nèi)的尸體忽然破棺而出痪蝇,到底是詐尸還是另有隱情,我是刑警寧澤冕房,帶...
    沈念sama閱讀 36,303評論 5 350
  • 正文 年R本政府宣布躏啰,位于F島的核電站,受9級特大地震影響耙册,放射性物質(zhì)發(fā)生泄漏岗仑。R本人自食惡果不足惜房维,卻給世界環(huán)境...
    茶點故事閱讀 41,979評論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧嘱蛋,春花似錦、人聲如沸耳幢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽弃揽。三九已至脯爪,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間矿微,已是汗流浹背痕慢。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留涌矢,地道東北人掖举。 一個月前我還...
    沈念sama閱讀 49,041評論 3 377
  • 正文 我出身青樓,卻偏偏與公主長得像娜庇,于是被迫代替她去往敵國和親拇泛。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,630評論 2 359

推薦閱讀更多精彩內(nèi)容

  • ShuffleNet:An Extremely Efficient Convolutional Neural Ne...
    ucascv7閱讀 1,315評論 0 0
  • 在那個燥熱的午后思灌, 觸到了一個女人辛酸的一生俺叭, 而一切的罪魁禍首, 卻是人們眼中美好高尚的愛泰偿。 在錯的時間遇見了最...
    井溢閱讀 266評論 2 5
  • 春天 匆匆又奔放的來 白的似雪 紅的似焰 綻放一時 又緩緩離去熄守。
    飛鳥與海閱讀 182評論 0 3
  • 生活不是用來妥協(xié)的,你退縮得越多,能讓你喘息的空間就越有限裕照;日子不是用來將就的攒发,你表現(xiàn)得越卑微,一些幸福的東西就會...
    凹凸嫚閱讀 269評論 0 0
  • 這本書討論的事情和我們的世俗生活至為接近晋南。諸如健康惠猿,財富,名聲负间,榮譽偶妖,養(yǎng)生,待人接物應遵循的原則政溃。這也是常另自己疑...
    賴楊雨閱讀 165評論 0 0