FasterNet
更高FLOPS才是更快更強(qiáng)的底氣,作者重新審視了現(xiàn)有的操作符,特別是DWConv的計算速度——FLOPS。作者發(fā)現(xiàn)導(dǎo)致低FLOPS問題的主要原因是頻繁的內(nèi)存訪問。然后,作者提出了PConv作為一種競爭性替代方案,它減少了計算冗余以及內(nèi)存訪問的數(shù)量。
論文鏈接:https://paperswithcode.com/paper/run-don-t-walk-chasing-higher-flops-for
為了設(shè)計快速神經(jīng)網(wǎng)絡(luò),許多工作都集中在減少浮點(diǎn)運(yùn)算(FLOPs)的數(shù)量上。然而,作者觀察到FLOPs的這種減少不一定會帶來延遲的類似程度的減少。這主要源于每秒低浮點(diǎn)運(yùn)算(FLOPS)效率低下。
為了實(shí)現(xiàn)更快的網(wǎng)絡(luò),作者重新回顧了FLOPs的運(yùn)算符,并證明了如此低的FLOPS主要是由于運(yùn)算符的頻繁內(nèi)存訪問,尤其是深度卷積。因此,本文提出了一種新的partial convolution(PConv),通過同時減少冗余計算和內(nèi)存訪問可以更有效地提取空間特征。
基于PConv進(jìn)一步提出FasterNet,這是一個新的神經(jīng)網(wǎng)絡(luò)家族,它在廣泛的設(shè)備上實(shí)現(xiàn)了比其他網(wǎng)絡(luò)高得多的運(yùn)行速度,而不影響各種視覺任務(wù)的準(zhǔn)確性。例如,在ImageNet-1k上小型FasterNet-T0在GPU、CPU和ARM處理器上分別比MobileVitXXS快3.1倍、3.1倍和2.5倍,同時準(zhǔn)確度提高2.9%。
大模型FasterNet-L實(shí)現(xiàn)了令人印象深刻的83.5%的TOP-1精度,與Swin-B不相上下,同時GPU上的推理吞吐量提高了49%,CPU上的計算時間也節(jié)省了42%。
神經(jīng)網(wǎng)絡(luò)在圖像分類、檢測和分割等各種計算機(jī)視覺任務(wù)中經(jīng)歷了快速發(fā)展。盡管其令人印象深刻的性能為許多應(yīng)用程序提供了動力,但一個巨大的趨勢是追求具有低延遲和高吞吐量的快速神經(jīng)網(wǎng)絡(luò),以獲得良好的用戶體驗(yàn)、即時響應(yīng)和安全原因等。
如何快速?研究人員和從業(yè)者不需要更昂貴的計算設(shè)備,而是傾向于設(shè)計具有成本效益的快速神經(jīng)網(wǎng)絡(luò),降低計算復(fù)雜度,主要以浮點(diǎn)運(yùn)算(FLOPs)的數(shù)量來衡量。
MobileNet、ShuffleNet和GhostNet等利用深度卷積(DWConv)和/或組卷積(GConv)來提取空間特征。然而,在減少FLOPs的過程中,算子經(jīng)常會受到內(nèi)存訪問增加的副作用的影響。MicroNet進(jìn)一步分解和稀疏網(wǎng)絡(luò),將其FLOPs推至極低水平。盡管這種方法在FLOPs方面有所改進(jìn),但其碎片計算效率很低。此外,上述網(wǎng)絡(luò)通常伴隨著額外的數(shù)據(jù)操作,如級聯(lián)、Shuffle和池化,這些操作的運(yùn)行時間對于小型模型來說往往很重要。
除了上述純卷積神經(jīng)網(wǎng)絡(luò)(CNNs)之外,人們對使視覺Transformer(ViTs)和多層感知器(MLP)架構(gòu)更小更快也越來越感興趣。例如,MobileViT和MobileFormer通過將DWConv與改進(jìn)的注意力機(jī)制相結(jié)合,降低了計算復(fù)雜性。然而,它們?nèi)匀皇艿紻WConv的上述問題的困擾,并且還需要修改的注意力機(jī)制的專用硬件支持。使用先進(jìn)但耗時的標(biāo)準(zhǔn)化和激活層也可能限制其在設(shè)備上的速度。
所有這些問題一起導(dǎo)致了以下問題:這些“快速”的神經(jīng)網(wǎng)絡(luò)真的很快嗎?為了回答這個問題,作者檢查了延遲和FLOPs之間的關(guān)系,這由
其中FLOPS是每秒浮點(diǎn)運(yùn)算的縮寫,作為有效計算速度的度量。雖然有許多減少FLOPs的嘗試,但都很少考慮同時優(yōu)化FLOPs以實(shí)現(xiàn)真正的低延遲。為了更好地理解這種情況,作者比較了Intel CPU上典型神經(jīng)網(wǎng)絡(luò)的FLOPS。?
圖2中的結(jié)果表明,許多現(xiàn)有神經(jīng)網(wǎng)絡(luò)的FLOPS較低,其FLOPS通常低于流行的ResNet50。由于FLOPS如此之低,這些“快速”的神經(jīng)網(wǎng)絡(luò)實(shí)際上不夠快。它們的FLOPs減少不能轉(zhuǎn)化為延遲的確切減少量。在某些情況下,沒有任何改善,甚至?xí)?dǎo)致更糟的延遲。例如,CycleMLP-B1具有ResNet50的一半FLOPs,但運(yùn)行速度較慢(即CycleMLPB1與ResNet50:111.9ms與69.4ms)。
請注意,FLOPs與延遲之間的差異在之前的工作中也已被注意到,但由于它們采用了DWConv/GConv和具有低FLOPs的各種數(shù)據(jù)處理,因此部分問題仍未解決。人們認(rèn)為沒有更好的選擇。
本文旨在通過開發(fā)一種簡單、快速、有效的運(yùn)算符來消除這種差異,該運(yùn)算符可以在減少FLOPs的情況下保持高FLOPS。具體來本文旨在通過開發(fā)一種簡單、快速、有效的運(yùn)算符來消除這種差異,該運(yùn)算符可以在減少FLOPs的情況下保持高FLOPS。
具體來說,作者重新審視了現(xiàn)有的操作符,特別是DWConv的計算速度——FLOPS。作者發(fā)現(xiàn)導(dǎo)致低FLOPS問題的主要原因是頻繁的內(nèi)存訪問。然后,作者提出了PConv作為一種競爭性替代方案,它減少了計算冗余以及內(nèi)存訪問的數(shù)量。
圖1說明了PConv的設(shè)計。它利用了特征圖中的冗余,并系統(tǒng)地僅在一部分輸入通道上應(yīng)用規(guī)則卷積(Conv),而不影響其余通道。本質(zhì)上,PConv的FLOPs低于常規(guī)Conv,而FLOPs高于DWConv/GConv。換句話說,PConv更好地利用了設(shè)備上的計算能力。PConv在提取空間特征方面也很有效,這在本文后面的實(shí)驗(yàn)中得到了驗(yàn)證。
作者進(jìn)一步引入PConv設(shè)計了FasterNet作為一個在各種設(shè)備上運(yùn)行速度非常快的新網(wǎng)絡(luò)家族。特別是,FasterNet在分類、檢測和分割任務(wù)方面實(shí)現(xiàn)了最先進(jìn)的性能,同時具有更低的延遲和更高的吞吐量。例如,在GPU、CPU和ARM處理器上,小模型FasterNet-T0分別比MobileVitXXS快3.1倍、3.1倍和2.5倍,而在ImageNet-1k上的準(zhǔn)確率高2.9%。大模型FasterNet-L實(shí)現(xiàn)了83.5%的Top-1精度,與Swin-B不相上下,同時在GPU上提供了49%的高吞吐量,在CPU上節(jié)省了42%的計算時間。
總之,貢獻(xiàn)如下:
-
指出了實(shí)現(xiàn)更高FLOPS的重要性,而不僅僅是為了更快的神經(jīng)網(wǎng)絡(luò)而減少FLOPs。
-
引入了一種簡單但快速且有效的卷積PConv,它很有可能取代現(xiàn)有的選擇DWConv。
-
推出FasterNet,它在GPU、CPU和ARM處理器等多種設(shè)備上運(yùn)行良好且普遍快速。
-
對各種任務(wù)進(jìn)行了廣泛的實(shí)驗(yàn),并驗(yàn)證了PConv和FasterNet的高速性和有效性。
PConv和FasterNet的設(shè)計
原理
?PConv作為一個基本的算子
在下面演示了通過利用特征圖的冗余度可以進(jìn)一步優(yōu)化成本。如圖3所示,特征圖在不同通道之間具有高度相似性。許多其他著作也涵蓋了這種冗余,但很少有人以簡單而有效的方式充分利用它。?
請注意,保持其余通道不變,而不是從特征圖中刪除它們。這是因?yàn)樗鼈儗罄m(xù)PWConv層有用,PWConv允許特征信息流經(jīng)所有通道。
PConv之后是PWConv
為了充分有效地利用來自所有通道的信息,進(jìn)一步將逐點(diǎn)卷積(PWConv)附加到PConv。它們在輸入特征圖上的有效感受野看起來像一個T形Conv,與均勻處理補(bǔ)丁的常規(guī)Conv相比,它更專注于中心位置,如圖5所示。為了證明這個T形感受野的合理性,首先通過計算位置的Frobenius范數(shù)來評估每個位置的重要性。
作者認(rèn)為一個顯著位置是具有最大Frobenius范數(shù)的位置。然后,在預(yù)訓(xùn)練的ResNet18中集體檢查每個過濾器,找出它們的顯著位置,并繪制顯著位置的直方圖。圖6中的結(jié)果表明,中心位置是過濾器中最常見的突出位置。換句話說,中心位置的權(quán)重比周圍的更重。這與集中于中心位置的T形計算一致。?
FasterNet作為Backbone
鑒于新型PConv和現(xiàn)成的PWConv作為主要的算子,進(jìn)一步提出FasterNet,這是一個新的神經(jīng)網(wǎng)絡(luò)家族,運(yùn)行速度非常快,對許多視覺任務(wù)非常有效。作者的目標(biāo)是使體系結(jié)構(gòu)盡可能簡單,使其總體上對硬件友好。
在圖4中展示了整體架構(gòu)。它有4個層次級,每個層次級前面都有一個嵌入層(步長為4的常規(guī)4×4卷積)或一個合并層(步長為2的常規(guī)2×2卷積),用于空間下采樣和通道數(shù)量擴(kuò)展。每個階段都有一堆FasterNet塊。作者觀察到,最后兩個階段中的塊消耗更少的內(nèi)存訪問,并且傾向于具有更高的FLOPS,如表1中的經(jīng)驗(yàn)驗(yàn)證。因此,放置了更多FasterNet塊,并相應(yīng)地將更多計算分配給最后兩個階段。每個FasterNet塊有一個PConv層,后跟2個PWConv(或Conv 1×1)層。它們一起顯示為倒置殘差塊,其中中間層具有擴(kuò)展的通道數(shù)量,并且放置了Shorcut以重用輸入特征。
除了上述算子,標(biāo)準(zhǔn)化和激活層對于高性能神經(jīng)網(wǎng)絡(luò)也是不可或缺的。然而,許多先前的工作在整個網(wǎng)絡(luò)中過度使用這些層,這可能會限制特征多樣性,從而損害性能。它還可以降低整體計算速度。相比之下,只將它們放在每個中間PWConv之后,以保持特征多樣性并實(shí)現(xiàn)較低的延遲。
此外,使用批次歸一化(BN)代替其他替代方法。BN的優(yōu)點(diǎn)是,它可以合并到其相鄰的Conv層中,以便更快地進(jìn)行推斷,同時與其他層一樣有效。對于激活層,根據(jù)經(jīng)驗(yàn)選擇了GELU用于較小的FasterNet變體,而ReLU用于較大的FasterNet變體,同時考慮了運(yùn)行時間和有效性。最后三個層,即全局平均池化、卷積1×1和全連接層,一起用于特征轉(zhuǎn)換和分類。
為了在不同的計算預(yù)算下提供廣泛的應(yīng)用,提供FasterNet的Tiny模型、Small模型、Medium模型和Big模型變體,分別稱為FasterNetT0/1/2、FasterNet-S、FasterNet-M和FasterNet-L。它們具有相似的結(jié)構(gòu),但深度和寬度不同。
架構(gòu)規(guī)范如下:
代碼實(shí)現(xiàn)
實(shí)驗(yàn)
PConv的快速性與高Flops
PConv與PWConv一起有效
FasterNet on ImageNet-1k?
?
?FasterNet在下游任務(wù)的表現(xiàn)
1、目標(biāo)檢測
消融實(shí)驗(yàn)
whaosoft aiot?http://143ai.com
總結(jié)
- 上一篇: TI_BLE软件开发者指导6——L2CA
- 下一篇: 商号权的取得方式是什么