0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

術(shù)開發(fā)一種硬件高效的RepGhost模塊

CVer ? 來源:極市平臺 ? 作者:CV開發(fā)者都愛看的 ? 2022-11-24 09:38 ? 次閱讀

1 RepGhost:重參數(shù)化技術(shù)構(gòu)建硬件高效的 Ghost 模塊

GhostNetV2 解讀:NeurIPS'22 Spotlight|華為諾亞GhostNetV2出爐:長距離注意力機(jī)制增強(qiáng)廉價(jià)操作

G-GhostNet 解讀:想要一個(gè)適配GPU端的輕量級網(wǎng)絡(luò)?安排!華為諾亞帶著 G-GhostNet 走來

1.1.1 特征復(fù)用技術(shù)和本文動(dòng)機(jī)

特征復(fù)用技術(shù)是指:通過簡單地連接來自不同層的已有的一些特征圖,來額外獲得一些其他的特征。比如在 DenseNet[1] 中,在一個(gè) Stage 內(nèi),前面層的特征圖被重復(fù)使用并被饋送到它們的后續(xù)層,從而產(chǎn)生越來越多的特征圖?;蛘咴?GhostNet 中,作者通過一些廉價(jià)的操作來生成更多的特征圖,并將它們與原始特征圖 Concat 起來,從而產(chǎn)生越來越多的特征圖。它們都通過 Concat 操作,利用特征復(fù)用技術(shù),來擴(kuò)大 channel 數(shù)量和網(wǎng)絡(luò)容量,同時(shí)保持一個(gè)比較低的 FLOPs。似乎 Concat 操作已經(jīng)成為特性復(fù)用的標(biāo)準(zhǔn)操作。

Concat 操作確實(shí)是一種 0 Params,0 FLOPs 的操作。但是,它在硬件設(shè)備上的計(jì)算成本是不可忽略的。 因?yàn)閰?shù)量和 FLOPs 不是機(jī)器學(xué)習(xí)模型實(shí)際運(yùn)行時(shí)性能的直接成本指標(biāo)。作者發(fā)現(xiàn),在硬件設(shè)備上,由于復(fù)雜的內(nèi)存復(fù)制,Concat 操作比加法操作效率低得多。因此,值得探索一種更好的、硬件效率更高的方法,以更好地適配特征復(fù)用技術(shù)。

因此,作者考慮引入結(jié)構(gòu)重參數(shù)化方法,這個(gè)系列方法的有效性在 CNN 體系結(jié)構(gòu)設(shè)計(jì)中得到了驗(yàn)證。具體而言,模型訓(xùn)練時(shí)是一個(gè)復(fù)雜的結(jié)構(gòu),享受高復(fù)雜度的結(jié)構(gòu)帶來的性能優(yōu)勢,訓(xùn)練好之后再等價(jià)轉(zhuǎn)換為簡單的推理結(jié)構(gòu),且不需要任何時(shí)間成本。受此啟發(fā),作者希望借助結(jié)構(gòu)重參數(shù)化方法來實(shí)現(xiàn)特征的隱式重用,以實(shí)現(xiàn)硬件高效的架構(gòu)設(shè)計(jì)。

所以本文作者希望通過結(jié)構(gòu)重新參數(shù)化技術(shù)開發(fā)一種硬件高效的 RepGhost 模塊,以實(shí)現(xiàn)特征的隱式重用。如前文所述,要把 Concat 操作去掉,同時(shí)修改現(xiàn)有結(jié)構(gòu)以滿足重參數(shù)化的規(guī)則。因此,在推斷之前,特征重用過程可以從特征空間轉(zhuǎn)移到權(quán)重空間,使 RepGhost 模塊高效。

1.1.2 Concat 操作的計(jì)算成本

作者將 GhostNet 1.0x 中的所有 Concat 操作替換成了 Add 操作,Add 操作也是一種處理不同特征的簡單操作,且成本較低。這兩個(gè)運(yùn)算符作用于形狀完全相同的張量上。如下圖1所示為對應(yīng)網(wǎng)絡(luò)中所有32個(gè)對應(yīng)運(yùn)算符的累計(jì)運(yùn)行時(shí)間。Concat 操作的成本是 Add 操作的2倍。

950bf328-6b48-11ed-8abf-dac502259ad0.jpg

圖1:在基于 ARM手機(jī)上 Concat 操作和 Add 操作處理不同 Batch Size 的數(shù)據(jù)的運(yùn)行時(shí)間

9517dd5a-6b48-11ed-8abf-dac502259ad0.jpg

圖2:每個(gè)操作符在整個(gè)網(wǎng)絡(luò)中的運(yùn)行時(shí)間的百分比。Diff:Concat 操作和 Add 操作的差值的百分比

1.1.3 Concat 操作和 Add 操作

poYBAGN-y9yAVF5iAAB4FXhsVMo201.jpg

951f1c96-6b48-11ed-8abf-dac502259ad0.jpg

式中, 代表 Concat 操作。它只保留現(xiàn)有的特征映射,將信息處理留給下面的層。例如,在 Concat 操作之后通常會(huì)有一個(gè) 1×1 卷積來處理信道信息。但是,Concat 操作的成本問題促使作者尋找一種更有效的方法。

通過 Add 操作進(jìn)行特征復(fù)用的過程可以寫成:

9527d0f2-6b48-11ed-8abf-dac502259ad0.jpg

式中, 代表 Add 操作。與 Concat 操作不同,Add 操作還具有特征融合的作用,而且特征融合過程是在權(quán)值空間中完成的,不會(huì)引入額外的推理時(shí)間。

基于此,作者提出了以下 RepGhost 模塊。

1.1.4 RepGhost 模塊

這一小節(jié)介紹如何通過重參數(shù)化技術(shù)來進(jìn)行特征復(fù)用,具體而言介紹如何從一個(gè)原始的 Ghost 模塊演變成 RepGhost 模塊。如下圖3所示,從 Ghost 模塊開始:

953118a6-6b48-11ed-8abf-dac502259ad0.jpg

圖3:從一個(gè)原始的 Ghost 模塊演變成 RepGhost 模塊的過程

(a) 原始的 Ghost 模塊,這里省去了第一步的 1×1 卷積。

(b) 把原始的 Ghost 模塊的 Concat 操作換成 Add 操作,以求更高的效率。

(c) 把 ReLU 移到 Add 操作之后,這種移動(dòng)使得模塊滿足結(jié)構(gòu)重新參數(shù)化規(guī)則,從而可用于快速推理。

(d) 在恒等映射 Identity Mapping 分支中添加 BN 操作,使得在訓(xùn)練過程中帶來非線性,并且可以被融合用于快速推斷。

(e) 模塊 (d) 可以被融合成模塊 (e),用于快速推斷。RepGhost 模塊有一個(gè)簡單的推理結(jié)構(gòu),它只包含規(guī)則的卷積層和ReLU,這使得它具有較高的硬件效率。特征融合的過程是在權(quán)重空間,而不是在特征空間中進(jìn)行,然后把兩個(gè)分支的參數(shù)進(jìn)行融合產(chǎn)生快速推理的結(jié)構(gòu)。

與 Ghost 模塊的對比

作用:

Ghost 模塊提出從廉價(jià)的操作中生成更多的特征圖,因此可以以低成本的方式擴(kuò)大模型的容量。

RepGhost 模塊提出了一種更有效的方法,通過重參數(shù)化來生成和融合不同的特征圖。與 Ghost 模塊不同,RepGhost 模塊去掉了低效的 Concat 操作,節(jié)省了大量推理時(shí)間。并且信息融合過程由 Add 操作以隱含的方式執(zhí)行,而不是留給其他卷積層。

pYYBAGN-y_-AffyNAACAQ8c3rGQ479.jpg

1.1.5 RepGhostNet 網(wǎng)絡(luò)

poYBAGN-zBOAPsCiAAJmpgLs8ho857.jpg

953e4e22-6b48-11ed-8abf-dac502259ad0.jpg

圖4:(a) GhostNet 網(wǎng)絡(luò)的一個(gè) Block。(b) RepGhost 網(wǎng)絡(luò)訓(xùn)練時(shí)的一個(gè) Block。(c) RepGhost 網(wǎng)絡(luò)推理時(shí)的一個(gè) Block

下圖5所示是 RepGhostNet 的網(wǎng)絡(luò)架構(gòu)。首先是一個(gè)輸出通道為16的卷積層處理輸入數(shù)據(jù)。一堆正常的 1×1 卷積和 AvgPool 預(yù)測最終輸出。根據(jù)輸入大小將 RepGhost Bottleneck 分成5組,并且為每組中除最后一個(gè) Bottleneck 之外的最后一個(gè) Bottleneck 設(shè)置 stride=2。

9556db72-6b48-11ed-8abf-dac502259ad0.jpg

圖5:RepGhost 網(wǎng)絡(luò)架構(gòu)

1.1.6 實(shí)驗(yàn)結(jié)果

ImageNet-1K 實(shí)驗(yàn)結(jié)果

如下圖所示是 ImageNet-1K 圖像分類任務(wù)的實(shí)驗(yàn)結(jié)果。NVIDIA V100 GPUs ×8 作為訓(xùn)練設(shè)備,Batch size 開到1024,優(yōu)化器 SGD (0.9 momentum),基本學(xué)習(xí)率為 0.6,Epoch 數(shù)為 300,weight decay 為1e-5,并且使用衰減系數(shù)為0.9999的 EMA (Exponential Moving Average) 權(quán)重衰減。數(shù)據(jù)增強(qiáng)使用 timm 庫的圖像裁剪和翻轉(zhuǎn),prob 0.2 的隨機(jī)擦除。對于更大的模型 RepGhostNet 1.3×,額外使用 auto augment。

95658280-6b48-11ed-8abf-dac502259ad0.jpg

圖6:ImageNet-1K 實(shí)驗(yàn)結(jié)果

實(shí)驗(yàn)結(jié)果如上圖6所示。根據(jù) FLOPs,所有模型被分為3個(gè)級別。在基于 ARM 的手機(jī)上評估每個(gè)模型的相應(yīng)延遲。圖1描繪了所有模型的延遲和精度。可以看到,在準(zhǔn)確性-延遲權(quán)衡方面,RepGhostNet 優(yōu)于其他手動(dòng)設(shè)計(jì)和基于 NAS 的模型。

RepGhostNet 實(shí)現(xiàn)了與其他先進(jìn)的輕量級 CNN 相當(dāng)甚至更好的準(zhǔn)確性,而且延遲低得多。例如,RepGhostNet 0.5× 比 GhostNet 0.5× 快 20%,Top-1 準(zhǔn)確性高 0.5%,RepGhostNet 1.0× 比 MobileNetV3 Large 0.75× 快 14%,Top-1 準(zhǔn)確性高 0.7%。在延遲相當(dāng)?shù)那闆r下,RepGhostNet 在所有三個(gè)量級大小的模型上面都超過所有對手模型。比如,RepGhostNet 0.58× 比 GhostNet 0.5× 高 2.5%,RepGhostNet 1.11× 比MobileNetV3 Large 0.75× 高 1.6%。

目標(biāo)檢測和實(shí)例分割實(shí)驗(yàn)結(jié)果

使用 RetinaNet 和 Mask RCNN分別用于目標(biāo)檢測任務(wù)和實(shí)例分割任務(wù)。僅替換 ImageNet 預(yù)訓(xùn)練的主干,并在8個(gè) NVIDIA V100 GPUs 中訓(xùn)練12個(gè)時(shí)期的模型結(jié)果如下圖7所示。RepGhostNet 在兩個(gè)任務(wù)上都優(yōu)于MobileNetV2,MobileNetV3 和 GhostNet,且推理速度更快。例如,在延遲相當(dāng)?shù)那闆r下,RepGhostNet 1.3× 在這兩項(xiàng)任務(wù)中比 GhostNet 1.1× 高出 1% 以上,RepGhostNet 1.5× 比 MobileNetV2 1.0× 高出 2% 以上。

956fddac-6b48-11ed-8abf-dac502259ad0.jpg

圖7:目標(biāo)檢測和實(shí)例分割實(shí)驗(yàn)結(jié)果

消融實(shí)驗(yàn)1:與 Ghost-Res50 的對比

為了驗(yàn)證大模型的 RepGhost 模塊的泛化性,作者將其與 GhostNet 模型 Ghost-Res50 進(jìn)行了比較。用 RepGhost 模塊替換 Ghost-Res50 中的 Ghost 模塊,得到 RepGhost-Res50。所有模型都使用相同的訓(xùn)練設(shè)置進(jìn)行訓(xùn)練。對于 MNN 延時(shí),與圖6結(jié)果使用相同的手機(jī)測得。對于 TRT 延遲,作者首先將模型轉(zhuǎn)換為 TensorRT,然后在 Batch size 為32的 T4 GPU 上運(yùn)行框架上的每個(gè)模型100次,并報(bào)告平均延遲。

結(jié)果如下圖8所示。可以看到,RepGhost-Res50 在 CPU 和 GPU 上都明顯快于 Ghost-Res50,但精度相當(dāng)。特別地,在 MNN 推理和 TensorRT 推理中,RepGhost-Res50 (s=2) 比 Ghost-Res50 (s=4) 分別獲得了 22% 和44% 的加速比。

957bf146-6b48-11ed-8abf-dac502259ad0.jpg

圖8:與 Ghost-Res50 的對比

消融實(shí)驗(yàn)2:重參數(shù)化結(jié)構(gòu)

為了驗(yàn)證重新參數(shù)化結(jié)構(gòu),作者在 RepGhostNet 0.5× 上進(jìn)行消融實(shí)驗(yàn),方法是在圖 3(c) 所示的模塊的恒等映射分支中交替使用 BN,1×1 Depth-wise Convolution 和恒等映射本身。結(jié)果如下圖9所示??梢钥吹剑瑤в?BN 重參數(shù)化的 RepGhostNet 0.5× 達(dá)到了最好的性能。作者將其作為所有其他 RepGhostNet 的默認(rèn)重新參數(shù)化結(jié)構(gòu)。

作者將這種改善歸因于 BN 的非線性,它提供了比恒等映射更多的信息。1×1 Depth-wise Convolution 之后也是 BN,因此,由于后面的歸一化,其參數(shù)對特征不起作用,并且可能使 BN 統(tǒng)計(jì)不穩(wěn)定,作者推測這導(dǎo)致了較差的性能。

95874000-6b48-11ed-8abf-dac502259ad0.jpg

圖9:重新參數(shù)化結(jié)構(gòu)消融實(shí)驗(yàn)

消融實(shí)驗(yàn)3:Shortcut 的必要性

盡管 會(huì)增加內(nèi)存訪問成本 (從而影響運(yùn)行時(shí)性能),但對于計(jì)算受限的移動(dòng)設(shè)備來說,這種影響可以忽略不計(jì),如表所示。7.考慮到所有這些,我們確認(rèn)快捷方式對于輕量級CNN是必要的,并在我們的RepGhostNet中保留快捷方式。mageNet 數(shù)據(jù)集上的準(zhǔn)確性,結(jié)果如下圖顯示了使用和不使用快捷方式時(shí) RepGhostNet 的準(zhǔn)確性和延遲。

很明顯,Shortcut 不會(huì)嚴(yán)重影響實(shí)際運(yùn)行的延時(shí),但有助于優(yōu)化過程。另一方面,大模型去掉 Shortcut 對 Latency 的影響要小于小模型,這可能意味著 Shortcut 對于輕量級 CNN 比大型模型更重要,例如 RepVGG 和 MobileOne。

盡管 Shortcut 會(huì)增加內(nèi)存訪問成本 (從而影響運(yùn)行時(shí)性能),但對于計(jì)算受限的移動(dòng)設(shè)備來說,這種影響可以忽略不計(jì)。考慮到所有這些,我們認(rèn)為 Shortcut 對于輕量級 CNN 是必要的,并在 RepGhostNet 中保留了 Shortcut 操作。

958edf90-6b48-11ed-8abf-dac502259ad0.jpg

圖10:Shortcut 的必要性消融實(shí)驗(yàn)結(jié)果

總結(jié)

GhostNet 通過一些廉價(jià)的操作來生成更多的特征圖,并將它們與原始特征圖 Concat 起來,從而產(chǎn)生越來越多的特征圖,它利用特征復(fù)用技術(shù),來擴(kuò)大 channel 數(shù)量和網(wǎng)絡(luò)容量,同時(shí)保持一個(gè)比較低的 FLOPs。似乎 Concat 操作已經(jīng)成為特性復(fù)用的標(biāo)準(zhǔn)操作。Concat 操作確實(shí)是一種 0 Params,0 FLOPs 的操作。

但是,它在硬件設(shè)備上的計(jì)算成本是不可忽略的。所以本文作者希望通過結(jié)構(gòu)重新參數(shù)化技術(shù)開發(fā)一種硬件高效的 RepGhost 模塊,以實(shí)現(xiàn)特征的隱式重用。RepGhostNet 把 Concat 操作去掉,同時(shí)修改現(xiàn)有結(jié)構(gòu)以滿足重參數(shù)化的規(guī)則。最終得到的 RepGhostNet 是一個(gè)高效的輕量級 CNN,在幾個(gè)視覺任務(wù)中都展示出了移動(dòng)設(shè)備的精度-延遲權(quán)衡方面良好的技術(shù)水平。






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • gpu
    gpu
    +關(guān)注

    關(guān)注

    28

    文章

    4740

    瀏覽量

    128951
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8418

    瀏覽量

    132646
  • cnn
    cnn
    +關(guān)注

    關(guān)注

    3

    文章

    352

    瀏覽量

    22215
  • ema
    ema
    +關(guān)注

    關(guān)注

    0

    文章

    3

    瀏覽量

    2397

原文標(biāo)題:輕量級CNN模塊!RepGhost:重參數(shù)化實(shí)現(xiàn)硬件高效的Ghost模塊

文章出處:【微信號:CVer,微信公眾號:CVer】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    【W(wǎng)aRP7試用申請】一種高效的協(xié)議融合解決方案

    的處理,對SDK開發(fā)環(huán)境進(jìn)行封裝,實(shí)現(xiàn)小批量,快速定制開發(fā)的目的。項(xiàng)目名稱:一種高效的協(xié)議融合解決方案項(xiàng)目計(jì)劃:在現(xiàn)有的平臺開發(fā)環(huán)境上封裝自
    發(fā)表于 07-03 18:30

    介紹一種高效的汽車電子測試方案

    介紹一種高效的汽車電子測試方案
    發(fā)表于 05-19 06:58

    萌新求助,求一種DSP硬件驅(qū)動(dòng)開發(fā)方法

    萌新求助,求一種DSP硬件驅(qū)動(dòng)開發(fā)方法
    發(fā)表于 10-22 06:53

    介紹一種基于硬件的安全模塊

    英飛凌科技開發(fā)一種基于硬件的安全模塊,通過其全新的 OPTIGA TPM 2.0 保護(hù)聯(lián)網(wǎng)汽車與汽車制造商之間的通信,該模塊
    發(fā)表于 02-11 07:41

    一種多路溫度儀硬件方案及下位機(jī)程序開發(fā)方案

    一種多路溫度儀硬件方案及下位機(jī)程序開發(fā)方案
    發(fā)表于 02-24 07:17

    一種高效LLC電源參考設(shè)計(jì)

    描述PMP10950 是一種高效 LLC 電源參考設(shè)計(jì),可將 380VDC 輸入轉(zhuǎn)換為 85V/7A 和 12V/9.5A 輸出。710W滿載時(shí)效率超過94%,半載時(shí)效率超過93%。特性
    發(fā)表于 09-20 08:09

    一種無線射頻收發(fā)模塊的應(yīng)用

    一種無線射頻收發(fā)模塊的應(yīng)用 摘要:介紹了一種新型廉價(jià)的無線收發(fā)模塊。通過這種模塊可以實(shí)現(xiàn)無線通訊和無線控制等多種功能。首先詳細(xì)地介紹了發(fā)
    發(fā)表于 11-13 20:59 ?114次下載

    開發(fā)DSP硬件驅(qū)動(dòng)程序的一種方法

    通過建立硬件驅(qū)動(dòng)程序的開發(fā)模式,可使上述現(xiàn)象得到改善。因此,本文介紹一種開發(fā)TI公司DSP 片內(nèi)及片外硬件外設(shè)驅(qū)動(dòng)程序的方法,并以C5000
    發(fā)表于 12-03 16:49 ?24次下載

    一種模塊高效電子商務(wù)推薦系統(tǒng)的設(shè)計(jì)

    論文提出了一種模塊化的高效電子商務(wù)推薦系統(tǒng)的體系結(jié)構(gòu),詳述了該系統(tǒng)各個(gè)模塊的構(gòu)造、功能以及如何相互協(xié)作從而最終完成推薦任務(wù)。并著重研究了數(shù)據(jù)預(yù)處理和序列模式挖
    發(fā)表于 03-02 11:59 ?19次下載

    一種GPS和GSM模塊的資料

    一種GPS和GSM模塊的資料
    發(fā)表于 07-22 15:43 ?62次下載

    一種高效的串行通信協(xié)議的制定及實(shí)現(xiàn)

    一種高效的串行通信協(xié)議的制定及實(shí)現(xiàn)
    發(fā)表于 11-09 18:08 ?56次下載

    關(guān)于一種高效printf打印方式

    一種高效printf打印方式
    的頭像 發(fā)表于 02-29 16:29 ?3421次閱讀
    關(guān)于<b class='flag-5'>一種</b><b class='flag-5'>高效</b>printf打印方式

    一種基于GaN的超高效功率模塊

    前不久,Hangzhou Zhongheng Electric Co., Ltd(HZZH)就利用Transphorm的TPH3205WS-GaN器件成功開發(fā)一種基于GaN的超高效功率模塊
    的頭像 發(fā)表于 04-27 16:46 ?4120次閱讀

    一種明場成像細(xì)胞術(shù)(BFIC)技術(shù)

    據(jù)麥姆斯咨詢報(bào)道,來自鄭州大學(xué)楊瀟楠教授課題組與中科院微電子所張文昌副研究員課題組聯(lián)合提出了一種明場成像細(xì)胞術(shù)(BFIC)技術(shù),以及多幀圖像關(guān)聯(lián)(MFIC)算法,作為一種潛在的無標(biāo)記CTC識別和計(jì)數(shù)方法。
    的頭像 發(fā)表于 06-26 10:32 ?2745次閱讀

    一種簡單高效配置FPGA的方法

    本文描述了一種簡單高效配置FPGA的方法,該方法利用微處理器從串行外圍接口(SPI)閃存配置FPGA設(shè)備。這種方法減少了硬件組件、板空間和成本。
    的頭像 發(fā)表于 10-24 14:57 ?604次閱讀
    <b class='flag-5'>一種</b>簡單<b class='flag-5'>高效</b>配置FPGA的方法