<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
"); //-->

博客專(zhuān)欄

EEPW首頁(yè) > 博客 > MUCNetV2:內存瓶頸和計算負載問(wèn)題一舉突破?分類(lèi)&檢測都有較高性能

MUCNetV2:內存瓶頸和計算負載問(wèn)題一舉突破?分類(lèi)&檢測都有較高性能

發(fā)布人:CV研究院 時(shí)間:2021-11-09 來(lái)源:工程師 發(fā)布文章

1.png

論文地址:https://arxiv.org/pdf/2110.15352.pdf

源代碼:https://mcunet.mit.edu


MCUNetV2取得了MCU端新的ImageNet分類(lèi)記錄71.8;更重要的是解鎖了MCU端執行稠密預測任務(wù)的可能性

一、背景

基于微控制器單元 (MCU) 等微型硬件的物聯(lián)網(wǎng)設備如今無(wú)處不在。在如此微小的硬件上部署深度學(xué)習模型將使我們能夠實(shí)現人工智能的民主化。然而,由于內存預算緊張,微型深度學(xué)習與移動(dòng)深度學(xué)習有著(zhù)根本的不同:普通MCU通常具有小于512kB的SRAM,這對于部署大多數現成的深度學(xué)習網(wǎng)絡(luò )來(lái)說(shuō)太小了。即使對于Raspberry Pi 4等更強大的硬件,將推理放入L2緩存(1MB)也可以顯著(zhù)提高能源效率。這些對具有較小峰值內存使用量的高效AI推理提出了新的挑戰。

2.jpg

現有工作采用修剪、量化和神經(jīng)架構搜索來(lái)進(jìn)行高效的深度學(xué)習。但是,這些方法側重于減少參數和FLOP的數量,而不是內存瓶頸。緊張的內存預算限制了特征圖/激活大小,限制了我們使用較小的模型容量或較小的輸入圖像大小。實(shí)際上,現有的tinyML工作中使用的輸入分辨率通常很小(<224^2),這對于圖像分類(lèi)(例如 ImageNet、VWW)來(lái)說(shuō)可能是可以接受的,但對于像目標檢測這樣的密集預測任務(wù)來(lái)說(shuō)是不可以接受的:如下圖圖所示,性能與圖像分類(lèi)相比,輸入分辨率下物體檢測的退化速度要快得多。這種限制阻礙了微型深度學(xué)習在許多現實(shí)生活任務(wù)(例如,行人檢測中的應用)。

3.png

研究者對高效網(wǎng)絡(luò )設計中每一層的內存使用情況進(jìn)行了深入分析,發(fā)現它們的激活內存分布非常不平衡。以MobileNetV2為例,如下圖所示,只有前5個(gè)塊的內存峰值較高(>450kB),成為整個(gè)網(wǎng)絡(luò )的內存瓶頸。其余13個(gè)塊的內存使用率較低,可以輕松容納256kB的MCU。初始內存密集階段的峰值內存比網(wǎng)絡(luò )其他部分高8倍。這樣的內存模式留下了巨大的優(yōu)化空間:如果我們能找到一種方法來(lái)“繞過(guò)”內存密集階段,我們可以將整體峰值內存減少8倍。

4.jpg

二、前言

由于有限的內存,MCU(MicroController Units, MCU)端的TinyDL極具挑戰性。為緩解該問(wèn)題,研究者提出一種廣義的patch-by-patch推理機制,它僅對特征圖的局部區域進(jìn)行處理,大幅降低了峰值內存。然而,常規的實(shí)現方式會(huì )帶來(lái)重疊塊與計算復雜問(wèn)題。研究者進(jìn)一步提出了recptive field redistribution調整感受野與FLOPs以降低整體計算負載。人工方式重分布感受野無(wú)疑非常困難!研究者采用NAS對網(wǎng)絡(luò )架構與推理機制進(jìn)行聯(lián)合優(yōu)化得到了本次分享的MCUNetV2。所提推理機制能大幅降低峰值內存達4-8倍。

所推MCUNetV2取得了MCU端新的ImageNet分類(lèi)記錄71.8% ;更重要的是,MCUNetV2解鎖了MCU端執行稠密預測任務(wù)的可能性,如目標檢測取得了比已有方案高16.9%mAP@VOC的指標。本研究極大程度上解決了TinyDL的內存瓶頸問(wèn)題,為圖像分類(lèi)之外的其他視覺(jué)應用鋪平了道路 。

三、新框架

Patch-based Inference:

現有的推理框架(如TFLite Micro, TinyEngine, MicroTVM)采用layer-by-layer方式運行。對于每個(gè)卷積層,推理庫首先在SRAM中開(kāi)辟輸入與輸出buffer,完成計算后釋放輸入buffer。這種處理機制更易于進(jìn)行推理優(yōu)化,但是SRAM必須保留完整的輸入與輸出buffer。研究者提出一種patch-based inference機制打破初始層的內存瓶頸問(wèn)題,見(jiàn)下圖。

5.png

所提patch-based推理則在內存密集階段以patch-by-patch方式運行 (見(jiàn)上圖右)。模型每次僅在小比例區域(比完整區域小10倍)進(jìn)行計算,這可以有效降低峰值內存占用。當完成該部分后,網(wǎng)絡(luò )的其他具有較小峰值內存的模塊則采用常規的layer-by-layer 方式運行。

以上圖stride=1/2的圖示為例,對于逐層計算方式,第一層具有大輸入輸出尺寸,導致非常高內存占用。通過(guò)空域拆分計算,以patch-by-patch方式開(kāi)辟buffer并進(jìn)行計算,此時(shí)我們僅需保存一個(gè)塊的buffer而非完整特征圖。

Computation overhead:

內存節省的代價(jià)來(lái)自計算負載提升。為與逐層推理相同的輸出結果,非重疊輸出塊需要對應了重疊輸入塊(見(jiàn)上圖b陰影區域)。這種重復性的計算會(huì )提升網(wǎng)絡(luò )整體10-17%計算量,這是低功耗邊緣設備所不期望的。

Reducing Computation Overhead by Redistributing the Receptive Field:

計算復雜度與patch方案初始階段的感受野相關(guān),考慮到patch階段的輸出,越大的感受野對應越大的輸入分辨率,進(jìn)而導致更多的重疊區域與重復計算。對于MobileNetV2來(lái)說(shuō),如果我們僅考慮下采樣,每個(gè)輸入塊的邊長(cháng)為。當提升感受野時(shí),每個(gè)輸入塊需要采用尺寸,導致更大的重疊區域。

研究者提出了重分布(redistribute)感受野以降低計算復雜度,其基本思想在于:

降低patch階段的感受野;

提升layer階段的感受野。

降低初始階段的感受野有助于降低patch部分的輸入尺寸與重復計算。然而,某些任務(wù)會(huì )因感受野較小導致性能下降。因此,我們進(jìn)一步提升layer部分的感受野以補償性能損失。

6.png

上圖給出了以MobileNetV2為例調整前后的架構對比圖。在patch推理階段,采用更小的核與更少的模塊,而在layer推理階段提升模塊的數量。

對于兩種架構來(lái)說(shuō),patch推理可以降低SRAM峰值達8倍;原始MobileNetV2設計會(huì )導致patch部分42%的計算量增加,整體增加10%;而調整的架構輸入尺寸從75下降到了63,整體計算量?jì)H增加3%,模型性能保持同等水平。具體比較見(jiàn)下表:

7.png

Joint Neural Architecture and Inference Scheduling Search:

重新分配感受野使我們能夠以最小的計算/延遲開(kāi)銷(xiāo)享受內存減少的好處,但策略因不同的主干而有所不同。在設計主干網(wǎng)絡(luò )(例如,使用更大的輸入分辨率)時(shí),減少的峰值內存還允許更大的自由度。為了探索如此大的設計空間,研究者建議以自動(dòng)化方式聯(lián)合優(yōu)化神經(jīng)架構和推理調度。給定某個(gè)數據集和硬件限制(SRAM 限制、Flash 限制、延遲限制等),我們的目標是在滿(mǎn)足所有限制條件的同時(shí)實(shí)現最高準確度。我們有以下要優(yōu)化的旋鈕:

8.png

Backbone optimization:研究者參考MCUNet采用了類(lèi)MnasNet搜索空間,而類(lèi)MobileNetV3搜索空間因Swish激活函數問(wèn)題導致難以量化而棄用。作者認為:最佳的搜索空間配置不僅硬件相關(guān),同樣任務(wù)相關(guān)。因此,還將r與w納入搜索空間。

Inference scheduling optimization:給定模型與硬件約束,將尋找最佳推理機制??蚣艿耐评硪婊贛CUnet中的TinyEngine擴展而來(lái),除了TinyEngine中已有的優(yōu)化外,還需要確定塊數量p與模塊數量n以執行patch推理,確保滿(mǎn)足SRAM約束。

Joint Search:需要協(xié)同設計骨干優(yōu)化與推理機制。比如,給定相同約束,可以選更小的模型以layer方式推理,或更大的模塊以patch方式推理。因此,我們兩者納入優(yōu)化并采用進(jìn)化搜索尋找滿(mǎn)足約束的最佳組合。

四、實(shí)驗

9.png

上圖1給出了Analytic profiling的結果,它僅與架構有關(guān)而與推理框架無(wú)關(guān)??梢钥吹剑簆atch推理可以大幅降低峰值內存達3.7-8.0x,僅增加8-17%計算量;對于MobileNetV2,通過(guò)重分布感受野可以將額外的計算量從10%降到3%;內存節省與計算降低與網(wǎng)絡(luò )架構相關(guān),故網(wǎng)絡(luò )架構與推理引擎的協(xié)同設計很有必要 。

上圖2給出了on-device profiling的結果,它不僅與架構相關(guān)還與硬件相關(guān)??梢钥吹剑簆atch推理可以降低SRAM峰值內存達4-6x 。某些模型可能會(huì )因初始階段的低硬件利用導致更長(cháng)的推理延遲,但合理的架構設計可以將額外推理延遲降低到4%,相比內存降低完全可以忽略。

10.png

上表給出了ImageNet上的分類(lèi)性能,從中可以看到:在256kB SRAM/1MB Flash硬件下,MCUNetV2具有比MCUnet高4.6%top1精度、低18%的峰值SRAM的性能。在512kB SRAM/2MB Flash硬件下,MCUNet取得了新的ImageNet記錄71.8%(限商用MCU),以3.3%超出了此前同等量化策略方案。

11.png

在H7 MCU上,相比MCUNet,MCUNetV2-H7的性能提升達16.7%mAP;在更廉價(jià)的M4MCU上,MCUNetV2-M4仍可提升13.2%mAP指標,峰值SRAM降低1.9x。

MUCNetV2-M4與MCUNet具有相似的計算量,但更高的性能。這是因為:patch推理導致的擴展搜索空間使得我們可以在更大的輸入分辨率與更小的模型中作出更佳的選擇。

在不同尺度下,MCUNetV2均優(yōu)于現有方案;MCUNetV2-L取得了同等檢測性能,但峰值內存被RNNPool-Face-C小3.4x,比LFFD小9.9x;計算量分別小1.6x與8.4x;MCUNetV2-S同樣具有比RNNPool-Face-A與EagleEye小1.8x的峰值內存。下圖還給出了檢測效果的對比,MCUNetV2的魯棒性更強。

12.png

13.png

Memory Distributions of Efficient Models

*博客內容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀(guān)點(diǎn),如有侵權請聯(lián)系工作人員刪除。

pid控制相關(guān)文章:pid控制原理


單片機相關(guān)文章:單片機教程


電路圖符號相關(guān)文章:電路圖符號大全


單片機相關(guān)文章:單片機視頻教程


單片機相關(guān)文章:單片機工作原理




關(guān)鍵詞: AI

相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>