(四)ShuffleNet_v2----2018ECCV論文解讀

ShuffleNet V2: Practical Guidelines for Efficient CNN Architecture Design

ShuffleNet V2:高效CNN架構設計實用指南

Abstract

當前,神經網絡體系結構設計主要由計算複雜度的間接度量即FLOP指導。但是,直接量度,例如速度,還取決於其他因素,例如存儲器訪問成本和平臺特性。因此,這項工作建議評估目標平臺上的直接指標,而不僅僅是考慮FLOP。基於一系列受控實驗,這項工作得出了一些有效的網絡設計實用指南。因此,提出了一種稱爲ShuffleNet V2的新體系結構。全面的燒蝕實驗證明,我們的模型在速度和精度的權衡方面是最先進的。

關鍵字:CNN架構設計,效率,實用

1 Introduction

深度卷積神經網絡(CNN)的架構已經發展多年,變得更加準確和快速。自從AlexNet [1]的里程碑式工作以來,通過新穎的結構,包括VGG [2],GoogLeNet [3],ResNet [4,5],DenseNet [6],ResNeXt [7], SE-Net [8]和自動中性架構搜索[9,10,11],僅舉幾例。

除了準確性之外,計算複雜性也是另一個重要考慮因素。現實世界中的任務通常旨在在有限的計算預算下獲得最佳精度,這由目標平臺(例如,硬件)和應用場景(例如,自動駕駛需要低延遲)給出。這激發了一系列朝着輕量級架構設計和更好的速度精度折衷的工作,其中包括Xception [12],MobileNet [13],MobileNet V2 [14],ShuffleNet [15]和CondenseNet [16]。很少。分組卷積和深度卷積在這些工作中至關重要。
在這裏插入圖片描述
​ 圖1:在具有四個不同計算複雜度的兩個硬件平臺上,四種網絡體系結構的準確性(ImageNet分類在驗證集上),速度和FLOP的測量。 (a,c)GPU結果,batchsize =8。(b,d)ARM結果,batchsize =1。在所有情況下,性能最佳的算法是我們建議的ShuffleNet v2,位於右上方。

爲了測量計算複雜度,廣泛使用的度量標準是浮點運算或FLOPs1的數量。 但是,FLOP是間接指標。 它是近似值,但通常不等同於我們真正關心的直接指標,例如速度或延遲。 這種差異在以前的著作中已經注意到[17,18,14,19]。例如,MobileNet v2 [14]比NASNET-A [9]快得多,但是它們具有可比的FLOP。 此現象在圖1(c)(d)中得到了進一步說明,該圖表明具有相似FLOP的網絡具有不同的速度。 因此,僅使用FLOP作爲計算複雜度的唯一度量標準是不夠的,並且可能導致次優設計。

間接(FLOP)和直接(速度)指標之間的差異可以歸因於兩個主要原因。首先,FLOP未考慮對速度有重大影響的幾個重要因素。這樣的因素之一是內存訪問成本(MAC)。在某些操作(例如組卷積)中,此類開銷構成了運行時的很大一部分。在具有強大計算能力的設備(例如GPU)上可能會成爲瓶頸。在網絡體系結構設計期間,不應簡單地忽略此成本。另一個是並行度。在相同的FLOP下,具有高並行度的模型可能比具有低並行度的模型快得多。

其次,根據平臺的不同,具有相同FLOP的操作可能具有不同的運行時間。例如,張量分解被廣泛用於早期工作[20,21,22],以加速矩陣乘法。然而,最近的工作[19]發現[22]中的分解在GPU上甚至更慢,儘管它可以將FLOP減少75%。我們調查了這個問題,發現這是因爲最新的CUDNN [23]庫針對3×3轉換進行了專門優化。我們不能肯定認爲3×3轉換比1×1轉換慢9倍。
在這裏插入圖片描述
​ 圖2:在兩個代表性的最先進的網絡體系結構ShuffeNet v1 [15](1×,g = 3)和MobileNet v2 [14](1×)上的運行時分解。

基於這些觀察,我們建議爲有效的網絡體系結構設計應考慮兩個原則。首先,應使用直接指標(例如速度)代替間接指標(例如FLOP)。其次,應在目標平臺上評估此類指標。

在這項工作中,我們遵循這兩個原則並提出了更有效的網絡體系結構。在第2節中,我們首先分析兩個代表性的最新網絡的運行時性能[15,14]。然後,我們得出了進行有效網絡設計的四項準則,這不僅僅是考慮FLOP的準則。儘管這些準則與平臺無關,但是我們執行了一系列受控實驗,以通過專用代碼優化在兩個不同的平臺(GPU和ARM)上對它們進行驗證,以確保我們的結論是最新的。

在第3節中,根據指南,我們設計了一個新的網絡結構。受到ShuffleNet [15]的啓發,它被稱爲ShuffleNet V2。通過第4節中的全面驗證實驗,證明了這兩個平臺上的網絡都比以前的網絡更快,更準確。圖1(a)(b)給出了比較的概述。例如,給定4000萬個FLOP的計算複雜性預算,ShuffleNet v2的準確度分別比ShuffleNet v1和MobileNet v2高3.5%和3.7%。

2 Practical Guidelines for Efficient Network Design

我們的研究是在兩種廣泛採用的硬件上進行的,這些硬件具有CNN庫的行業級優化。我們注意到,我們的CNN庫比大多數開源庫更有效。因此,我們確保我們的觀察和結論是可靠的,並且對工業實踐具有重要意義。

GPU。使用單個NVIDIA GeForce GTX 1080Ti。卷積庫是CUDNN 7.0 [23]。我們還激活CUDNN的基準測試功能,分別爲不同的卷積選擇最快的算法。

ARM。高通Snapdragon810。我們使用高度優化的基於Neon的實現。一個線程用於評估。

在這裏插入圖片描述
其他設置包括:完整的優化選項(例如張量融合,用於減少小規模操作的開銷)已打開。輸入的圖像大小爲224×224。每個網絡均被隨機初始化並評估100次。使用平均運行時間。

爲了開始我們的研究,我們分析了兩個最新網絡ShuffleNet v1 [15]和MobileNet v2 [14]的運行時性能。它們在ImageNet分類任務上既高效又準確。它們都廣泛用於手機等低端設備。儘管我們僅分析了這兩個網絡,但我們注意到它們代表了當前趨勢。羣卷積和深度卷積是它們的核心,它們也是其他最新網絡的關鍵組件,例如ResNeXt [7],Xception [12],MobileNet [13]和CondenseNet [16]。

如圖2所示,將整個運行時分解爲不同的操作。我們注意到,FLOP度量標準僅考慮了卷積部分。儘管這部分消耗大量時間,但其他操作(包括數據I / O,數據混洗和按元素操作(AddTensor,ReLU等))也佔用了大量時間。因此,FLOP對實際運行時間的估計不夠準確。

基於此觀察,我們從幾個不同方面進行了運行時(或速度)的詳細分析,並得出了一些有效的網絡體系結構設計的實用準則。

G1)相等的通道寬度可最大程度地減少內存訪問成本(MAC)。現代網絡通常採用深度可分離卷積[12,13,15,14],其中點向卷積(即1×1卷積)佔了大多數複雜度[15]。我們研究了1×1卷積的核形狀。形狀由兩個參數指定:輸入通道c1的數量和輸出通道c2的數量。令h和w爲特徵圖的空間大小,則1×1卷積的FLOP爲B = hwc1c2。

爲簡單起見,我們假定計算設備中的緩存足夠大,可以存儲整個功能圖和參數。因此,內存訪問成本(MAC)或內存訪問操作數爲MAC = hw(c1 + c2)+ c1c2。請注意,這兩個術語分別對應於輸入/輸出特徵圖和內核權重的內存訪問。

在這裏插入圖片描述

從均值不平等,我們有
MAC2hwB+Bhw(1) \mathrm{MAC} \geq 2 \sqrt{h w B}+\frac{B}{h w} (1)
因此,MAC具有FLOP給出的下限。當輸入和輸出通道數相等時,它達到下限。

結論是理論上的。實際上,許多設備上的緩存不夠大。另外,現代計算庫通常採用複雜的阻塞策略來充分利用緩存機制[24]。因此,實際的MAC可能會偏離理論值。爲了驗證上述結論,進行如下實驗。通過反覆堆疊10個構建基塊來構建基準網絡。每個塊包含兩個卷積層。第一個包含c1input通道和c2output通道,第二個包含其他通道。

表1報告了通過改變比率c1:c2固定固定FLOP的運行速度。顯然,當c1:c2接近1:1時,MAC變小並且網絡評估速度更快。

G2)過多的組卷積會增加MAC。組卷積是現代網絡體系結構的核心[7,15,25,26,27,28]。通過將所有通道之間的密集卷積更改爲稀疏(僅在通道組內),可以降低計算複雜度(FLOP)。一方面,在給定固定FLOP的情況下,它允許使用更多信道,並增加了網絡容量(因此具有更高的準確性)。但是,另一方面,增加的通道數將導致更多的MAC。

正式地,遵循G1和Eq中的符號。在圖1中,對於1×1組卷積,MAC與FLOP之間的關係爲
MAC=hw(c1+c2)+c1c2g=hwc1+Bgc1+Bhw(2) \begin{aligned} \mathrm{MAC} &=h w\left(c_{1}+c_{2}\right)+\frac{c_{1} c_{2}}{g} \\ &=h w c_{1}+\frac{B g}{c_{1}}+\frac{B}{h w} \end{aligned} (2)
其中g是組數,B = hwc1c2 / g是FLOP。不難看出,給定固定的輸入形狀c1×h×w和計算成本B,MAC隨着g的增加而增加。
在這裏插入圖片描述
爲了在實踐中研究這種影響,通過堆疊10個逐點組卷積層來構建基準網絡。 表2報告了固定總FLOP時使用不同組號的運行速度。 顯然,使用較大的組數會大大降低運行速度。 例如,在GPU上使用8組的速度比在1組(標準密集卷積)上的速度慢兩倍以上,而在ARM上則要慢30%。 這主要是由於MAC增加。 我們注意到,我們的實現已經過特別優化,並且比逐組計算卷積要快得多。

因此,我們建議應根據目標平臺和任務謹慎選擇組號。使用大的組號是不明智的,因爲這可能使使用更多的通道成爲可能,因爲快速增加的計算成本可能會輕易抵消準確性提高的好處。

G3)網絡碎片會降低並行度。在GoogLeNet系列[29,30,3,31]和自動生成的體系結構[9,11,10]中,“多路徑”結構在每個網絡模塊中被廣泛採用。使用了許多小型運算符(在此稱爲“分段運算符”),而不是一些大型運算符。例如,在NASNET-A [9]中,分段運算符的數量(即,一個構建塊中的單個卷積或池化操作的數量)爲13。相反,在像ResNet [4]這樣的常規結構中,該數量爲2或3。

儘管已顯示這種碎片化的結構有助於提高準確性,但由於它對具有強大並行計算能力的設備(如GPU)不友好,因此可能會降低效率。它還引入了額外的開銷,例如內核啓動和同步。

在這裏插入圖片描述
​ 圖3:ShuffleNet v1 [15]的構建塊和這項工作。 (a):基本的ShuffleNet單位; (b)ShuffleNet單元,用於空間下采樣(2倍); (c)我們的基本單位; (d)我們用於空間下采樣(2×)的單元。 DWConv:深度卷積。 GConv:分組卷積。

爲了量化網絡碎片如何影響效率,我們評估了一系列具有不同碎片度的網絡塊,具體而言,每個構建塊由1到4個1×1卷積組成,這些卷積按順序或並行排列。 塊結構在附錄中說明。 每個塊重複堆疊10次。 表3中的結果表明,碎片會顯着降低GPU的速度,例如 4片段結構比1片段慢3倍。 在ARM上,速度降低相對較小。

G4)逐元素運算不可忽略。如圖2所示,在像[15,14]這樣的輕量模型中,逐元素操作會佔用大量時間,尤其是在GPU上。在這裏,逐元素運算符包括ReLU,AddTensor,AddBias等。它們的FLOP較小,但MAC相對較重。特別地,我們還將深度卷積[12,13,14,15]視爲元素級算子,因爲它也具有很高的MAC / FLOPs比。

爲了驗證,我們在ResNet中試驗了“瓶頸”單元(1×1 conv,然後是3×3 conv,然後是1×1 conv,並帶有ReLU和快捷方式連接)[4]。 ReLU和快捷方式操作將分別刪除。表4中報告了不同版本的運行時。我們觀察到,除去ReLU和快捷方式後,GPU和ARM均可實現約20%的加速。

結論與討論 基於上述指導原則和實證研究,我們得出結論,一種有效的網絡架構應:1)使用“平衡”卷積(相等的信道寬度); 2)注意使用組卷積的代價; 3)減少碎片程度;和4)減少按元素操作。這些理想的屬性取決於超出理論FLOP的平臺特性(例如內存操作和代碼優化)。對於實際的網絡設計,應該考慮它們。

在這裏插入圖片描述
輕量級神經網絡體系結構的最新進展[15,13,14,9,11,10,12]大多基於FLOP的度量,而沒有在上面考慮這些特性。 例如,ShuffleNet v1 [15]在很大程度上依賴於組卷積(針對G2)和類似瓶頸的構建塊(針對G1)。MobileNetv2 [14]使用了與G1背道而馳的瓶頸結構。 它在“厚”特徵圖上使用深度卷積和ReLU,這違反了G4。自動生成的結構[9,11,10]高度分散,違反了G3。

3 ShuffleNet V2: an Efficient Architecture

ShuffleNet v1的回顧[15]。 ShuffleNet是最先進的網絡體系結構。它被低端設備(例如手機)廣泛採用。它激發了我們的工作。因此,首先要對其進行審查和分析。

根據[15],輕量級網絡的主要挑戰是在給定的計算預算(FLOP)下,僅有限數量的功能通道是可以承受的。爲了在不顯着增加FLOP的情況下增加通道數量,在[15]中採用了兩種技術:逐點羣卷積和類似瓶頸的結構。然後引入“頻道混洗”操作以實現不同頻道組之間的信息通信並提高準確性。構造塊如圖3(a)(b)所示。

如第2節所述,逐點組卷積和瓶頸結構都會增加MAC(G1和G2)。此費用不可忽略,尤其是對於輕型機型。同樣,使用過多的組也會違反G3。快捷方式連接中按元素進行“添加”操作也是不希望的(G4)。因此,爲了獲得較高的模型容量和效率,關鍵問題是如何保持既不密集卷積又不存在過多組的大量相等寬度的信道。

通道拆分和ShuffleNet V2爲此,我們引入了一個簡單的運算符,稱爲通道拆分。它在圖3(c)中說明。在每個單元的9個開頭,將c個特徵通道的輸入分爲兩個分支,分別具有c-c0和c0通道。 G3之後,仍保留一個分支作爲標識。另一個分支由三個具有相同輸入和輸出通道的卷積組成,以滿足G1。與[15]不同,兩個1×1卷積不再按組進行。這部分遵循G2,部分原因是拆分操作已經產生了兩個組。

卷積後,將兩個分支連接起來。因此,通道數保持不變(G1)。然後使用與[15]中相同的“信道混洗”操作來啓用兩個分支之間的信息通信。

改組後,下一個單元開始。請注意,ShuffleNet v1 [15]中的“添加”操作不再存在。像ReLU和深度卷積這樣的元素操作僅存在於一個分支中。同樣,三個連續的元素方式操作“ Concat”,“ Channel Shuffle”和“ Channel Split”被合併爲單個元素方式操作。根據G4,這些更改是有益的。

對於空間下采樣,單位略有修改,如圖3(d)所示。通道拆分運算符已刪除。因此,輸出通道的數量增加了一倍。

提議的構件(c)(d)以及生成的網絡稱爲ShuffleNet V2。根據以上分析,我們得出結論,此架構設計遵循所有準則,因此非常高效。

重複堆疊構建模塊以構建整個網絡。爲簡單起見,我們設置c0 = c / 2。總體網絡結構類似於ShuffleNet v1 [15],並在表5中進行了概述。只有一個區別:在全局平均池之前添加了一個附加的1×1卷積層以混合功能,這在ShuffleNet v1中是不存在的。類似於[15],每個塊中的通道數按比例縮放以生成複雜度不同的網絡,標記爲0.5×,1×等。

網絡準確性分析ShuffleNet v2不僅高效,而且準確。有兩個主要原因。首先,每個構建塊中的高效率使得可以使用更多的功能通道和更大的網絡容量。

其次,在每個塊中,一半特徵通道(當c0 = c / 2時)直接通過該塊並加入下一個塊。與DenseNet [6]和CondenseNet [16]相似,這可以看作是一種功能重用。

在DenseNet [6]中,爲了分析特徵重用模式,繪製了層之間權重的l1-範數,如圖4(a)所示。顯然,相鄰層之間的連接比其他層更牢固。這意味着所有層之間的密集連接可能會引入冗餘。最近的CondenseNet [16]也支持這種觀點。

在這裏插入圖片描述
在ShuffleNet V2中,很容易證明第i個與第(i + j)個構建塊之間的“直接連接”通道數爲rjc,其中r =(1-c0)/ c。換句話說,特徵重用量隨兩個塊之間的距離呈指數衰減。在遠距離的塊之間,功能重用變得很弱。圖4(b)繪製了與(a)中相似的可視化效果,其中r = 0.5。注意,(b)中的模式類似於(a)。

因此,ShuffleNet V2的結構通過設計實現了這種類型的功能重用模式。與DenseNet [6]一樣,它也具有重複使用特徵以實現高精度的好處,但是它的效率要高得多。在表8中的實驗中對此進行了驗證。

4 Experiment

我們的消融實驗在ImageNet 2012分類數據集上進行[32,33]。遵循慣例[15,13,14],相比之下,所有網絡都具有四個級別的計算複雜度,即大約40、140、300和500+個MFLOP。這種複雜性對於移動方案而言是典型的。其他超參數和協議與ShuffleNet v1完全相同[15]。

我們將其與以下網絡架構進行比較[12、14、6、15]:

  • ShuffleNet v1 [15]。在[15]中,比較了一系列的組號g。建議g = 3在精度和速度之間有更好的權衡。這也符合我們的觀察。在這項工作中,我們主要使用g =3。
  • – MobileNet v2 [14]。它比MobileNet v1 [13]更好。爲了全面比較,我們在原始論文[14]和重新實現中均報告了準確性,因爲[14]中的某些結果不可用。
  • – Xception [12]。原始的Xception模型[12]非常大(FLOP> 2G),這超出了我們的比較範圍。最近的工作[34]提出了一種改進的輕量級Xception結構,該結構在精度和效率之間表現出更好的折衷。因此,我們將其與該變體進行比較。
  • – DenseNet [6]。原始工作[6]僅報告大型模型的結果(FLOP> 2G)。爲了進行直接比較,我們按照表5中的體系結構設置重新實現它,其中階段2-4中的構造塊由11個DenseNet塊組成。我們調整渠道數量以滿足不同的目標複雜性。

表8總結了所有結果。我們從不同方面分析這些結果。

精度與FLOP的關係。顯然,提出的ShuffleNet v2模型在很大程度上要優於所有其他網絡2,尤其是在較小的計算預算下。另外,我們注意到MobileNet v2在40個MFLOP級別上以224×224的圖像大小執行合併。這可能是由於頻道太少所致。相比之下,由於我們的高效設計允許使用更多通道,因此我們的模型不會遭受此缺點。而且,雖然我們的模型和DenseNet [6]都具有重用功能,但我們的模型效率更高,如第三節中所述。

表8還比較了我們的模型與其他最新網絡的情況,包括CondenseNet [16],IGCV2 [27]和IGCV3 [28]。我們的模型在各種複雜度級別上的性能始終如一。

推理速度與FLOP /精度之間的關係。對於ShuffleNet v2,MobileNet v2,ShuffleNet v1和Xception等四種精度較高的體系結構,我們將它們的實際速度與FLOP進行比較,如圖1(c)(d)所示。附錄表1中提供了有關不同分辨率的更多結果。

ShuffleNet v2明顯比其他三個網絡快,尤其是在GPU上。例如,在500MFLOP時,ShuffleNet v2比MobileNet v2快58%,比ShuffleNet v1快63%,比Xception快25%。在ARM上,ShuffleNet v1,Xception和ShuffleNet v2的速度相當。但是,MobileNet v2慢得多,尤其是在較小的FLOP上。我們認爲這是因爲MobileNet v2具有更高的MAC(請參閱第2節中的G1和G4),這在移動設備上很重要。

與MobileNet v1 [13],IGCV2 [27]和IGCV3 [28]相比,我們有兩個觀察結果。首先,儘管MobileNet v1的準確性不高,但它在GPU上的速度要比包括ShuffleNet v2在內的所有同類產品都快。我們認爲這是因爲其結構可以滿足大多數建議的準則(例如,對於G3,MobileNet v1的片段比ShuffleNet v2還要少)。其次,IGCV2和IGCV3較慢。這是由於使用了太多的卷積組(在[27,28]中爲4或8)。兩種觀察結果均與我們建議的指南一致。

最近,自動模型搜索[9,10,11,35,36,37]已成爲CNN體系結構設計的有希望的趨勢。表8的底部評估了一些自動生成的模型。我們發現它們的速度相對較慢。我們認爲,這主要是由於使用了太多片段(請參閱G3)。儘管如此,這一研究方向仍然是有前途的。例如,如果將模型搜索算法與我們提出的指南結合起來,並在目標平臺上評估直接指標(速度),則可以獲得更好的模型。

最後,圖1(a)(b)總結了精度與速度(直接度量)的結果。我們得出結論說,ShuffeNet v2在GPU和ARM上均是最佳的。

與其他方法的兼容性。 ShuffeNet v2可以與其他技術結合使用,以進一步提高性能。當配備了Squeezeandand-excitation(SE)模塊[8]時,ShuffleNet v2的分類精度提高了0.5%,但會損失一定的速度。塊結構在附錄圖2(b)中說明。結果示於表8(底部)。

大型模型通用化。儘管我們的主要消融是在重量輕的情況下執行的,但ShuffleNet v2可用於大型模型(例如,FLOP≥2G)。表6比較了一個50層的ShuffleNet v2(附錄中的詳細信息)與ShuffleNet v1 [15]和ResNet-50 [4]的對應關係。 ShuffleNet v2在2.3GFLOP的性能上仍勝過ShuffleNet v1,並以40%的FLOP超過了ResNet-50。

對於深度較深的ShuffleNet v2(例如超過100層),爲了加快收斂速度,我們通過添加剩餘路徑(附錄中的詳細信息)對基本ShuffleNet v2單元進行了稍微的修改。表6列出了配備SE [8]組件的164層ShuffleNet v2模型(附錄中的詳細信息)。與以前的最新模型[8]相比,它具有更少的FLOP,因而具有更高的精度。

對象檢測爲了評估泛化能力,我們還測試了COCO對象檢測[38]任務。我們使用最先進的輕型檢測器– Light-Head RCNN [34]作爲我們的框架,並遵循相同的培訓和測試協議。只有骨幹網被我們的骨幹網取代。在ImageNet上對模型進行預訓練,然後根據檢測任務對其進行微調。對於訓練,我們使用COCO中的train + val設置,除了來自最小設置的5000張圖像,然後使用minival進行測試。精度度量標準是COCO標準mmAP,即框IoU閾值從0.5到0.95的平均mAP。

將ShuffleNet v2與其他三個輕量級模型進行比較:Xception [12,34],ShuffleNet v1 [15]和MobileNet v2 [14]在四個複雜度上。表7中的結果表明ShuffleNet v2表現最佳。

將檢測結果(表7)與分類結果(表8)進行比較,有趣的是,分類時的準確度等級爲ShuffleNet v2≥MobileNet v2> ShuffeNet v1> Xception,而在檢測時,準確度等級爲ShuffleNet v2> Xception≥ShuffleNet v1≥MobileNet v2。這表明Xception在檢測任務方面很出色。這可能是由於Xception構建塊的接受域比其他對應域更大(7 vs. 3)。受此啓發,我們還通過在每個構建基塊中的第一個點式卷積之前引入附加的3×3深度式卷積來擴大ShuffleNet v2的接收範圍。此變體表示爲ShuffleNet v2 *。僅需幾個額外的FLOP,就可以進一步提高精度。

我們還在GPU上對運行時間進行了基準測試。 爲了公平比較,批大小設置爲4,以確保完全利用GPU。 由於數據複製(分辨率高達800×1200)和其他特定於檢測的操作(如PSRoI Pooling [34])的開銷,不同模型之間的速度差距要小於分類的速度差距。 儘管如此,ShuffleNet v2仍然勝過其他產品,例如 比ShuffleNet v1快40%,比MobileNet v2快16%。

在這裏插入圖片描述
在這裏插入圖片描述
此外,變體ShuffleNet v2 *具有最高的準確性,但仍比其他方法快。這引發了一個實際的問題:如何增加感受野的大小?這對於高分辨率圖像中的目標檢測至關重要[39]。將來我們將研究該主題。

5 Conclusion

我們建議網絡體系結構設計應考慮諸如速度之類的直接量度,而不是像FLOPs這樣的間接量度。我們提供實用指南和新穎的體系結構ShuffleNet v2。全面的實驗證明了我們新模型的有效性。我們希望這項工作可以激發未來平臺意識和更實用的網絡體系結構設計的工作。

致謝感謝Yichen Wei在論文寫作方面的幫助。這項研究得到了中國國家自然科學基金(授權號61773229)的部分支持。
在這裏插入圖片描述
​ 表8:在兩個平臺和四個計算複雜度級別上,幾種網絡體系結構在分類錯誤(驗證集,單中心作物)和速度方面的比較。將結果按複雜性級別分組,以便更好地進行比較。對於GPU,批處理大小爲8;對於ARM,批處理大小爲1。圖像尺寸爲224×224,除了:[*] 160×160和[**] 192×192。由於目前缺乏有效的實施,我們不提供CondenseNets [16]的速度測量。

Appendix

在這裏插入圖片描述
附錄圖1:實驗中用於準則3的構件。(a)1片段。 (b)2片段系列。 (c)4片段系列。 (d)2片段平行。 (e)4片段平行。
在這裏插入圖片描述
附錄圖2:具有SE /殘差功能的ShuffleNet v2的構建塊。 (a)ShuffleNet v2帶有殘留。 (b)帶SE的ShuffleNet v2。 (c)具有SE和殘差的ShuffleNet v2。
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章