一
背景
Backbone模型是各種視覺任務(wù)訓(xùn)練的基石,視覺任務(wù)模型的性能和模型的速度都受backbone模型的影響,良好的backbone模型可以有效提高視覺任務(wù)模型的性能和精度。因此設(shè)計(jì)優(yōu)良的backbone模型對視覺任務(wù)模型的表現(xiàn)至關(guān)重要。目前存在低延遲且高性能的開源模型已經(jīng)有很多,但這些模型的設(shè)計(jì)往往只考慮到了理論計(jì)算量,并沒有和實(shí)際的硬件條件相結(jié)合,因此這些模型部署到實(shí)際的硬件上,并不能發(fā)揮最大的速度潛能。針對這個(gè)挑戰(zhàn),為了發(fā)揮backbone模型的最大潛力,我們在M55H平臺(tái)上,基于MobileNetV2模型定制了適用于M55H平臺(tái)的backbone模型AXSpine系列,相比于原始MobileNetV2模型,AXSpine-Middle在精度提升的同時(shí),速度提升了50%,硬件的MAC利用率大幅提高,在多個(gè)具體任務(wù)上達(dá)到80%以上。另外還有多組通過裁剪或者擴(kuò)充的AXSpine系列模型提供,以供不同延遲和精度要求的視覺任務(wù)進(jìn)行選擇。
二
性能指標(biāo)
以下展示AXSpine-Middle模型和MobileNetV2模型在愛芯元智M55H平臺(tái)上不同分辨率的性能對比,數(shù)據(jù)集采用ImageNet數(shù)據(jù)集,精度均在224x224分辨率條件下進(jìn)行測試,更多AXSpine模型指標(biāo)在文章末尾表格中:
模型名稱 | Input shape | acc1(224 x 224 標(biāo)準(zhǔn)輸入條件下) | M55H 幀率(@vnpu111) |
MobileNetV2 | 1x3x576x320 | 71.88 | 124 fps |
MobileNetV2 | 1x3x288x160 | 71.88 | 373.7 fps |
AXSpine-Middle | 1x3x576x320 | 72.87 | 186 fps |
AXSpine-Middle | 1x3x1280x720 | 72.87 | 36.5 fps |
AXSpine-Middle | 1x3x1920x1080 | 72.87 | 19.4 fps |
三
相關(guān)模型介紹
3.1 MobileNetV2
MobileNetV2是google提出的用于移動(dòng)端的backbone模型,具有精度高、計(jì)算量小的特點(diǎn),在移動(dòng)端設(shè)備上推理效果顯著。MobileNetV2模型的基本組成塊為倒置殘差卷積,由兩組1x1的卷積和一組3x3的depthwise卷積構(gòu)成。1x1卷積主要作用為對depthwise卷積做升/降維,3x3的depthwise卷積則在升維的空間上進(jìn)行卷積運(yùn)算,這種架構(gòu)可以在保證表達(dá)能力的同時(shí)有效地增強(qiáng)計(jì)算效率。隨后,這種倒置殘差卷積結(jié)構(gòu)進(jìn)行若干次的堆疊,構(gòu)造成為MobileNetV2模型。
3.2 地平線相關(guān)模型
地平線公司也在自身平臺(tái)上專門對backbone模型進(jìn)行了優(yōu)化,并推出了VarGENet和MixVarGENet等系列模型,其基本塊如下圖所示:
3.3 特斯拉相關(guān)模型
特斯拉相關(guān)模型為RegNet,RegNet為何凱明的相關(guān)工作,旨在用超參數(shù)搜索的方式,指導(dǎo)模型設(shè)計(jì)的相關(guān)工作,在低運(yùn)算量的條件下,取得了相對優(yōu)良的精度,由于沒有用到depthwise卷積,在GPU模型上表現(xiàn)良好,被特斯拉硬件采用。其基本結(jié)構(gòu)與resnet等同,如下所示:
四
模型優(yōu)化
相對于MobileNetV2官方實(shí)現(xiàn),AXSpine模型做了以下改動(dòng):
●將MobileNetV2的所有的depthwise卷積修改為小channel size的group卷積;
●將模型第二層的倒置殘差卷積替換為一個(gè)簡單的3x3 conv層;
●對不滿足硬件通道對齊的層進(jìn)行硬件通道對齊;
● 減小部分層的expand_ratio提高運(yùn)算速度;
● 將原有的5層stage結(jié)構(gòu),仿照convnext修改為4層stage結(jié)構(gòu)3393,速度提升,精度降低。
五
改動(dòng)詳細(xì)說明
5.1 depthwise卷積修改為group卷積
由于邊緣側(cè)芯片的depthwise卷積的支持往往比較低效,這導(dǎo)致使用depthwise卷積的MobileNetV2無法發(fā)揮理論計(jì)算效率,在這里將depthwise卷積修改為group卷積,增強(qiáng)模型的表達(dá)能力,由于芯片組卷積,在特定channel的情況最為高效,因此將所有的depthwise卷積修改為特定channel數(shù)的group卷積。
5.2 替換第二層倒置殘差卷積
MobileNetV2的第一層為一個(gè)3x3的普通卷積,第二層為一個(gè)expand_ratio = 1 的倒置殘差卷積,在原有的MobileNetV2設(shè)計(jì)中,使用倒置殘差卷積的目的是為了減少計(jì)算量,然而當(dāng)修改為group卷積后,運(yùn)算量反倒大幅增加,因此將第二層的倒置殘差卷積的兩個(gè)堆疊的卷積層,修改為單個(gè)普通的3x3卷積。
5.3 對不滿通道對齊的卷積進(jìn)行對齊
硬件單元在計(jì)算的過程中,需要進(jìn)行數(shù)據(jù)對齊,如果不滿足數(shù)據(jù)對齊條件,就會(huì)降低運(yùn)算效率,M55H硬件也是一樣。因此,為了充分利用硬件的計(jì)算能力,需要對不滿足channel對齊的層進(jìn)行對齊操作,MobileNetV2模型中,部分層不滿足硬件對齊條件,這里需要對不滿足硬件對齊的層進(jìn)行向上補(bǔ)齊操作,不影響性能,表達(dá)能力有所提升。
5.4 減小expand_ratio
由于原有的depthwise卷積被替換成了group卷積,模型的表達(dá)能力大幅增強(qiáng),而我們修改MobileNetV2模型的最終目的是為了在保證精度的情況下,提升速度,因此在此處對expand_ratio進(jìn)行消減,將expand_ratio從6修改為4,第二層的expand_ratio由4再消減為2,理論上模型的計(jì)算量減少約30%,這種expand_同時(shí)也考慮到了M55H的調(diào)度特性,在實(shí)際的調(diào)度過程中,由于各層特征圖的大小得到了均衡,整體調(diào)度效率也得到了提升。
5.5 修改模型stage排布
借鑒convnext文章中的的思路,模型應(yīng)當(dāng)包含有4個(gè)stage,每個(gè)stage的比例大概為13:1較優(yōu),基于此判斷,對MobileNetV2模型的stage進(jìn)行重新劃分,將原有的stage排布按照39:3進(jìn)行排列,相比于直接削減channel數(shù)提升速度的方式,修改stage對模型精度的損傷較小,修改見下圖所示:
六
總結(jié)
經(jīng)過對MobilenetV2模型的適應(yīng)性改動(dòng),愛芯元智發(fā)布了基于M55H芯片平臺(tái)的定制化模型AXSpine,相比于原版MobilenetV2模型,AXSpine-Middle模型具有更高的精度和達(dá)到50%提升的速度。得益于愛芯元智M55H平臺(tái)軟硬件聯(lián)合設(shè)計(jì)優(yōu)化,經(jīng)過改良后的AXSpine模型相較業(yè)界友商在單位算力情況下,展現(xiàn)出了強(qiáng)大的性能和延遲表現(xiàn)。此外除了AXSpine-Middle模型以外,還有若干組模型上架,以滿足不同的延遲和精度需求,總結(jié)表格如下,以下模型目前已應(yīng)用于多組視覺任務(wù)中,歡迎使用:
模型名稱 | Input shape | acc1(224 x 224 標(biāo)準(zhǔn)輸入條件下) | M55H 幀率(@vnpu111) |
MobileNetV2 | 1x3x576x320 | 71.88 | 124 fps |
AXSpine-Small | 1x3x576x320 | 71.59 | 227 fps |
AXSpine-Middle | 1x3x576x320 | 72.87 | 186 fps |
AXSpine-Big | 1x3x576x320 | 75.31 | 131 fps |
審核編輯:劉清
-
GPU芯片
+關(guān)注
關(guān)注
1文章
303瀏覽量
5864
原文標(biāo)題:愛芯分享 | 基于M55H的定制化backbone模型AxeraSpine
文章出處:【微信號:愛芯元智AXERA,微信公眾號:愛芯元智AXERA】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論