国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于嵌入式平臺的卷積神經(jīng)網(wǎng)絡(luò)壓縮加速方法*

2022-03-01 08:27:42賀彥鈞張旭博
通信技術(shù) 2022年12期
關(guān)鍵詞:卷積神經(jīng)網(wǎng)絡(luò)深度

賀彥鈞,張旭博

(中國電子科技集團(tuán)公司第三十研究所,四川 成都 610041)

0 引言

近年來,深度學(xué)習(xí)模型發(fā)展快速,在機(jī)器視覺任務(wù)上取得了長足的進(jìn)步,在某些任務(wù)上,其辨識能力甚至超過了人類,例如,卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)目標(biāo)檢測技術(shù)在智能監(jiān)控、工業(yè)檢測、智慧城市等領(lǐng)域起到了支撐作用。雖然深度學(xué)習(xí)模型的網(wǎng)絡(luò)架構(gòu)被設(shè)計(jì)得越來越深,性能變得越來越優(yōu),但參數(shù)量資源消耗大成了一個普遍的問題。例如,主流的ResNet50的參數(shù)量達(dá)到25.5 MB,運(yùn)行時內(nèi)存占用約1.4 GB,同樣的還有DensNet、Unet等[1]。此外,目前的無人機(jī)、無人車及智能家居、物聯(lián)網(wǎng)等低算力平臺同樣希望能夠AI賦能,即能夠在平臺硬件資源有限的情況下去完成一些較為智能的任務(wù),例如目標(biāo)檢測、人臉識別、圖像分割等任務(wù),而如何在嵌入式設(shè)備和移動平臺上運(yùn)行深度學(xué)習(xí)智能模型成為目前業(yè)界共同關(guān)注的問題,也是學(xué)術(shù)界和工業(yè)界的研究熱點(diǎn)。

目前學(xué)術(shù)界已基本證實(shí),大部分的深度神經(jīng)網(wǎng)絡(luò)模型存在參數(shù)過度冗余,且巨量模型參數(shù)中存在較多的無效參數(shù),然而可以通過一些方法來減少模型的參數(shù)去除冗余,同時保持較少的精度損失或者不損失精度。目前學(xué)術(shù)界已提出許多方法來壓縮和加速深度神經(jīng)網(wǎng)絡(luò),如模型剪枝、模型量化、模型蒸餾、低秩分解、緊湊架構(gòu)設(shè)計(jì)等方法。例如,Zhang等人[2]提出的Shufflenet引入了一種高效的框架,采用點(diǎn)組卷積和通道洗牌兩種操作,在保持相當(dāng)?shù)姆诸惥鹊耐瑫r顯著降低了計(jì)算復(fù)雜度。同時,Dai等人[3]提出的PolyNet證明在網(wǎng)絡(luò)設(shè)計(jì)中多樣化的結(jié)構(gòu)作為一種超越深度和寬度的替代維度,可以提高圖像識別的性能。

本文針對無人車嵌入式設(shè)備上深度神經(jīng)網(wǎng)絡(luò)模型的壓縮加速問題,提出了一套結(jié)合模型蒸餾、網(wǎng)絡(luò)結(jié)構(gòu)搜索、模型量化的通用模型壓縮方法,并提出了一種新的基于無錨點(diǎn)(anchor-free)的輕量級自分組卷積神經(jīng)網(wǎng)絡(luò)目標(biāo)檢測模型。該方法首先通過對網(wǎng)絡(luò)通道的壓縮、小卷積核替換和自分組卷積來搭建輕量級主干(backbone)[4]網(wǎng)絡(luò);其次結(jié)合Anchor-Free的目標(biāo)檢測方法來搭建小網(wǎng)絡(luò),同時通過知識蒸餾來進(jìn)行網(wǎng)絡(luò)訓(xùn)練,讓小網(wǎng)絡(luò)學(xué)習(xí)當(dāng)前最優(yōu)效果(State of The Art,SOTA)的目標(biāo)檢測模型的檢測能力;最后通過深度模型的非對稱統(tǒng)計(jì)后量化的方法進(jìn)一步壓縮模型大小,以達(dá)到提速的目標(biāo)。通過綜合實(shí)驗(yàn)表明,該方法顯著地減少了網(wǎng)絡(luò)模型的規(guī)模,并且在多種流行的視覺數(shù)據(jù)庫PascalVoc和ImageNet的測試上,顯示出優(yōu)越的性能,并在無人車平臺上達(dá)到了實(shí)時目標(biāo)檢測的效果,這為嵌入式平臺或移動平臺的深度學(xué)習(xí)模型的部署和應(yīng)用提供了重要的指導(dǎo)。

1 基于無人車的模型壓縮加速方法

1.1 方案設(shè)計(jì)

無人車選用基于樹莓派和Nano板的機(jī)器人操作系統(tǒng)(Robot Operating System,ROS)平臺,該平臺在當(dāng)前的無人機(jī)和無人車上的應(yīng)用比較普遍且具有代表性。在此基礎(chǔ)上,設(shè)計(jì)基于分組卷積的輕量級實(shí)時網(wǎng)絡(luò)結(jié)構(gòu)(LightWeight CNN,LT-CNN),用于無人車目標(biāo)檢測的模型基礎(chǔ)架構(gòu)。然后選用當(dāng)前檢測效果非常好的大模型,即Anchor-free的全卷積單階段的目標(biāo)檢測模型(Fully Convolutional One-Stage Object Detection,F(xiàn)COS)網(wǎng)絡(luò),來進(jìn)行知識蒸餾,通過teacher-net與student-net進(jìn)行聯(lián)合蒸餾訓(xùn)練的方式,讓LT-CNN網(wǎng)絡(luò)學(xué)習(xí)到當(dāng)前SOTA網(wǎng)絡(luò)的特征提取能力,從而獲得相當(dāng)?shù)哪繕?biāo)檢測能力。最后,將訓(xùn)練完成得到的模型進(jìn)行進(jìn)一步的模型參數(shù)壓縮,即使用后統(tǒng)計(jì)非對稱量化方法,壓縮模型參數(shù)的大小,以提高模型的加載與推理速度,同時起到降低模型推理時硬件功耗的目的。

1.2 輕量級模型LT-CNN結(jié)構(gòu)設(shè)計(jì)

FCOS目標(biāo)檢測算法是一種基于全卷積網(wǎng)絡(luò)(Fully Convolutional Networks,F(xiàn)CN)的逐像素目標(biāo)檢測算法,實(shí)現(xiàn)了無錨點(diǎn)(anchor-free)、無提議(proposal free)的解決方案,并且引入了中心度center-ness的思想。該算法在召回率等方面的表現(xiàn)接近甚至超過目前很多先進(jìn)主流的基于錨框目標(biāo)的檢測算法。因此,本文選擇FCOS網(wǎng)絡(luò)作為輕量級模型的設(shè)計(jì)對標(biāo)基礎(chǔ)和模型蒸餾的teacher網(wǎng)絡(luò)。Iandola等人[5]提出的SqueezeNet實(shí)現(xiàn)了與AlexNet相同的精度,但只用了1/50的參數(shù)量,其采用的squeeze模塊先利用1×1卷積進(jìn)行降維,然后利用1×1和3×3卷積組合升維,并將Pooling采樣延后,給卷積層提供更大的激活圖,以提供更高的準(zhǔn)確率。在MobileNets中,采用深度可分離卷積(Depth-Wise Separable Convolution)結(jié)構(gòu)來實(shí)現(xiàn)在不降低網(wǎng)絡(luò)性能的前提下減少網(wǎng)絡(luò)參數(shù)和計(jì)算量的目的。在SENet中,通過學(xué)習(xí)的方式來自動獲取每個特征通道的重要程度,利用特征通道之間的關(guān)系來提升網(wǎng)絡(luò)性能。

本文設(shè)計(jì)的輕量級模型LT-CNN將SqueezeNet、SE-Net和MobileNets的思想融入到hourglass架構(gòu)中。LT-CNN將residual block替換為SqueezeNet中的Fire module,將3×3標(biāo)準(zhǔn)卷積替換為MobileNets的3×3深度可分離卷積,同時順著空間維度來進(jìn)行特征壓縮,利用SE-Net的Squeeze操作和Excitation操作來提升模型的性能[4]。具體的網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。

圖1 LT-CNN網(wǎng)絡(luò)結(jié)構(gòu)

LT-CNN網(wǎng)絡(luò)的基礎(chǔ)架構(gòu)是帶skip的Hourglass結(jié)構(gòu),并采用anchor-free的目標(biāo)檢測網(wǎng)絡(luò)架構(gòu),在backbone后接一個分類分支和一個框回歸分支。同時大量地使用了3×3深度可分離卷積和1×1的卷積結(jié)構(gòu),并創(chuàng)新地結(jié)合卷積通道的attention結(jié)構(gòu),讓網(wǎng)絡(luò)推理快速且準(zhǔn)確[6-7]。

1.3 模型的知識蒸餾

搭建了基本的輕量網(wǎng)絡(luò)結(jié)構(gòu)LT-CNN以后,本文采用模型蒸餾訓(xùn)練的方式來實(shí)現(xiàn)知識遷移,通過構(gòu)建FCOS與LT-CNN的知識蒸餾網(wǎng)絡(luò)來實(shí)現(xiàn)FCOS模型檢測能力到LT-CNN的遷移。

1.3.1 知識蒸餾

Hinton的文章Distilling the Knowledge in a Neural Network首次提出了知識蒸餾(暗知識提?。┑母拍?,如圖2所示,通過引入與復(fù)雜但預(yù)測精度優(yōu)越的教師網(wǎng)絡(luò)(Teacher network)相關(guān)的軟目標(biāo)(Soft-target)作為Total loss的一部分,以誘導(dǎo)精簡、低復(fù)雜度、更適合推理部署的學(xué)生網(wǎng)絡(luò)(Student network)的訓(xùn)練,實(shí)現(xiàn)知識遷移(Knowledge transfer)[8]。

如圖2所示,教師網(wǎng)絡(luò)(左側(cè))的預(yù)測輸出除以溫度參數(shù)(Temperature)之后,再做Softmax計(jì)算,可以獲得軟化的概率分布(軟目標(biāo)或軟標(biāo)簽),數(shù)值介于0~1之間,且取值分布較為緩和。其中,Temperature數(shù)值越大,分布越緩和;而Temperature數(shù)值減小,容易放大錯誤分類的概率,引入不必要的噪聲。針對較困難的分類或檢測任務(wù),Temperature通常取1,確保教師網(wǎng)絡(luò)中正確預(yù)測的貢獻(xiàn)。Total loss設(shè)計(jì)為軟目標(biāo)與硬目標(biāo)所對應(yīng)的交叉熵的加權(quán)平均(表示為KD loss與CE loss)。另外,教師網(wǎng)絡(luò)的預(yù)測精度通常要優(yōu)于學(xué)生網(wǎng)絡(luò),而模型容量則無具體限制,且教師網(wǎng)絡(luò)推理精度越高,越有利于學(xué)生網(wǎng)絡(luò)的學(xué)習(xí)。

圖2 知識蒸餾

設(shè)標(biāo)簽為y,網(wǎng)絡(luò)預(yù)測結(jié)果為則CE損失函數(shù)為:

Hinton的KD方法是在softmax之后做KL散度,同時加入了一個RL領(lǐng)域常用的超參溫度參數(shù)T,也有一個半監(jiān)督的工作在softmax之后接L2 loss,其表達(dá)式為:

Hinton等人做了3組實(shí)驗(yàn),其中兩組都驗(yàn)證了知識蒸餾方法的有效性。在美國國家標(biāo)準(zhǔn)與技術(shù)研究院收集的MNIST數(shù)據(jù)集上的實(shí)驗(yàn)表明,即便有部分類別的樣本缺失,新模型也表現(xiàn)得很不錯,且只需要修改相應(yīng)的偏置項(xiàng),就可以與原模型表現(xiàn)相當(dāng)。語音任務(wù)實(shí)驗(yàn)也表明,蒸餾得到的模型比從頭訓(xùn)練的模型捕捉了更多數(shù)據(jù)集中的有效信息,表現(xiàn)僅比集成模型低了0.3個百分點(diǎn)??傮w來說,知識蒸餾是一個簡單而有效的模型壓縮和訓(xùn)練的方法。

1.3.2 蒸餾訓(xùn)練設(shè)計(jì)

蒸餾訓(xùn)練就是先訓(xùn)練好一個大網(wǎng)絡(luò),在最后的softmax層使用合適的溫度參數(shù)T,最后訓(xùn)練得到的概率稱為“軟目標(biāo)”。以這個軟目標(biāo)和真實(shí)標(biāo)簽作為目標(biāo),去訓(xùn)練一個比較小的網(wǎng)絡(luò),訓(xùn)練的時候也使用在大模型中確定的溫度參數(shù)T。在蒸餾結(jié)構(gòu)搭建時有比較常用的結(jié)構(gòu),例如共享學(xué)習(xí)低水平特征,teacher-student網(wǎng)絡(luò)模型使用通用模型的權(quán)重進(jìn)行初始化,或者使用逐級蒸餾的方式,逐步進(jìn)行知識遷移。

本文根據(jù)目標(biāo)檢測網(wǎng)絡(luò)FCOS的網(wǎng)絡(luò)對稱結(jié)構(gòu)的特點(diǎn)對蒸餾結(jié)構(gòu)進(jìn)行改進(jìn),讓teacher網(wǎng)絡(luò)不但能在最終的軟目標(biāo)對student小網(wǎng)絡(luò)進(jìn)行指導(dǎo),而且能在中間層對student小網(wǎng)絡(luò)進(jìn)行指導(dǎo)。這種特殊的改進(jìn)不但能讓網(wǎng)絡(luò)訓(xùn)練速度更快,也能讓student網(wǎng)絡(luò)習(xí)得更多的知識,過擬合風(fēng)險更小,從而得到一個不錯的表現(xiàn)。具體的模型蒸餾結(jié)構(gòu)如圖3所示。

圖3 模型蒸餾結(jié)構(gòu)

1.4 模型的量化壓縮

深度神經(jīng)網(wǎng)絡(luò)模型由于其網(wǎng)絡(luò)大且深,模型的參數(shù)量巨大,導(dǎo)致最終訓(xùn)練得到的模型文件都比較大,例如ALexNet的單個模型文件可以達(dá)到200 MB。深度卷積神經(jīng)網(wǎng)絡(luò)模型的參數(shù)一般都是浮點(diǎn)數(shù)形式,普通的壓縮算法很難壓縮它們。同時,模型推理也使用浮點(diǎn)數(shù),計(jì)算時消耗的計(jì)算資源量(內(nèi)存、顯存空間和CPU、GPU時間)也比較大。

量化壓縮技術(shù)可以在不影響模型準(zhǔn)確率的情況下,在模型內(nèi)部采用比較簡單的數(shù)值類型進(jìn)行計(jì)算,計(jì)算速度會提高很多,從而消耗的計(jì)算資源會大大減小。特別是對無人車或無人機(jī)等低算力設(shè)備來說,這一點(diǎn)尤其重要。模型量化后依然可以較好地保持模型的準(zhǔn)確率,其原因主要有以下3點(diǎn):

(1)訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)模型里,權(quán)重、活化張量的數(shù)值通常分布在一個相對較小的范圍中,如權(quán)重的數(shù)值范圍為-15~15,活化張量的數(shù)值范圍為-500~1 000;

(2)神經(jīng)網(wǎng)絡(luò)對噪聲的適應(yīng)性強(qiáng),將數(shù)量化到一個更小的數(shù)集中并不會對整體的結(jié)果帶來很大的影響;

(3)通過量化操作,可以有效提高點(diǎn)乘的計(jì)算效率。

量化一般分為直接統(tǒng)計(jì)量化和量化感知訓(xùn)練,本文使用的是后統(tǒng)計(jì)量化的方法,直接對模型進(jìn)行量化,不需要對模型進(jìn)行再訓(xùn)練。因?yàn)樾∧P褪钦麴s訓(xùn)練完成的,再進(jìn)行Finetune可能會引起準(zhǔn)確率較大的波動,所以直接進(jìn)行后統(tǒng)計(jì)量化更為有效和便捷。

2 驗(yàn)證實(shí)驗(yàn)設(shè)計(jì)與分析

2.1 實(shí)驗(yàn)條件

模型蒸餾實(shí)驗(yàn)在Win10系統(tǒng)下進(jìn)行,CPU為Intel Core i7-8086K,GPU為NVIDIAGTX1080TI,軟件平臺為CUDA8.0、CUDNN5.1以及Python3.7等。

無人車端實(shí)驗(yàn)在Ubuntu 16.04系統(tǒng)下進(jìn)行。硬件使用Pixahwk 2.4.8控制器,并采用新標(biāo)準(zhǔn)的32位處理器STM32f427,搭配5611氣壓計(jì)。無人車控制固件搭建Ardupilot系統(tǒng),提供先進(jìn)的、功能齊全的、可靠的自動駕駛軟件系統(tǒng)。

2.2 數(shù)據(jù)及評價指標(biāo)

2.2.1 目標(biāo)檢測實(shí)驗(yàn)數(shù)據(jù)集

本文利用ImageNet數(shù)據(jù)集進(jìn)行圖像分類的預(yù)訓(xùn)練,以提高特征提取網(wǎng)絡(luò)的圖像分類性能。預(yù)訓(xùn)練之前,需在ImageNet數(shù)據(jù)集中提取出與PASCAL VOC數(shù)據(jù)集相同的20種類別的圖像組成的預(yù)訓(xùn)練圖像集,并結(jié)合PASCAL VOC 2007和2012的trainval訓(xùn)練驗(yàn)證集(共16 551張圖像)作為本算法的訓(xùn)練集。通過隨意翻轉(zhuǎn)、隨機(jī)縮放、任意裁剪和色彩抖動等方法,對訓(xùn)練集進(jìn)行數(shù)據(jù)增強(qiáng)。測試集采用PASCAL VOC 2007的測試集。

2.2.2 評價指標(biāo)

參數(shù)量(params):表示模型中的參數(shù)數(shù)量,用于反映模型規(guī)格。

浮點(diǎn)運(yùn)算次數(shù)(Floating Point Operations,F(xiàn)LOPs):表示網(wǎng)絡(luò)計(jì)算量,用于衡量模型的時間復(fù)雜度。

精準(zhǔn)度(accuracy):表示模型對圖像分類的精準(zhǔn)程度。

平均精度(Average Precision,AP):用于評價模型對單個類別的檢測結(jié)果,綜合地反映目標(biāo)檢測模型的性能。

平均精度均值(mean Average Precision,mAP):用于評價模型對存在多個類別的目標(biāo)的檢測效果。

每秒幀數(shù)(Frame Per Second,F(xiàn)PS):用于評價目標(biāo)網(wǎng)絡(luò)每秒可以處理(檢測)多少幀(多少張圖片)。

2.3 LT-CNN模型實(shí)驗(yàn)結(jié)果及分析

LT-CNN與CenterNet-ResNet101的對比實(shí)驗(yàn)結(jié)果見表1。

表1 對比實(shí)驗(yàn)結(jié)果

利用LT-CNN模型對無錨框目標(biāo)檢測算法CenterNet的主干網(wǎng)絡(luò)進(jìn)行通道剪枝,對剪枝后的算法在PASCAL VOC數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)驗(yàn)證,結(jié)果發(fā)現(xiàn),剪枝后的CenterNet-ResNet101在mAP僅損失0.7%的情況下,F(xiàn)PS提升了45.0%,參數(shù)量減少了40.0%,計(jì)算量降低了40.0%,表明LT-CNN模型算法可以有效提高無錨框目標(biāo)檢測算法的檢測速度,減少計(jì)算量和資源消耗。

3 結(jié)語

本文所設(shè)計(jì)的LT-CNN模型,通過在結(jié)構(gòu)中引入attention機(jī)制,采用分組卷積與快速卷積結(jié)構(gòu)使模型推理速度加快,并通過知識蒸餾學(xué)習(xí)當(dāng)前SOTA目標(biāo)檢測模型Fast的目標(biāo)檢測能力,最后通過后統(tǒng)計(jì)量化方法將推理模型進(jìn)一步壓縮提速,實(shí)現(xiàn)了面向Nano無人車嵌入式平臺的輕量級卷積神經(jīng)網(wǎng)絡(luò)壓縮加速方法。模型不僅在無人車上具備保持大型目標(biāo)檢測網(wǎng)絡(luò)檢測精度的能力,而且也達(dá)到了高精度實(shí)時運(yùn)行的能力。

猜你喜歡
卷積神經(jīng)網(wǎng)絡(luò)深度
基于3D-Winograd的快速卷積算法設(shè)計(jì)及FPGA實(shí)現(xiàn)
深度理解一元一次方程
神經(jīng)網(wǎng)絡(luò)抑制無線通信干擾探究
電子制作(2019年19期)2019-11-23 08:42:00
從濾波器理解卷積
電子制作(2019年11期)2019-07-04 00:34:38
深度觀察
深度觀察
深度觀察
基于傅里葉域卷積表示的目標(biāo)跟蹤算法
基于神經(jīng)網(wǎng)絡(luò)的拉矯機(jī)控制模型建立
復(fù)數(shù)神經(jīng)網(wǎng)絡(luò)在基于WiFi的室內(nèi)LBS應(yīng)用
清丰县| 洛浦县| 连云港市| 东明县| 香河县| 夹江县| 密云县| 韶关市| 吉林省| 哈密市| 兰溪市| 鄂州市| 庆城县| 乳山市| 陇西县| 垣曲县| 金湖县| 蓬莱市| 连城县| 上饶县| 金寨县| 巩留县| 土默特右旗| 尼玛县| 谷城县| 深州市| 类乌齐县| 蓬溪县| 九龙坡区| 广宁县| 敦化市| 玛纳斯县| 通许县| 米泉市| 政和县| 九寨沟县| 眉山市| 鹤庆县| 浪卡子县| 留坝县| 九龙县|