chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

五種CNN模型的尺寸,計(jì)算量和參數(shù)數(shù)量對(duì)比詳解

8g3K_AI_Thinker ? 2017-12-08 13:47 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

卷積神經(jīng)網(wǎng)絡(luò)日益增長(zhǎng)的深度和尺寸為深度學(xué)習(xí)在移動(dòng)端的部署帶來(lái)了巨大的挑戰(zhàn),CNN模型壓縮與加速成為了學(xué)術(shù)界和工業(yè)界都重點(diǎn)關(guān)注的研究領(lǐng)域之一。

自從AlexNet一舉奪得ILSVRC 2012 ImageNet圖像分類(lèi)競(jìng)賽的冠軍后,卷積神經(jīng)網(wǎng)絡(luò)(CNN)的熱潮便席卷了整個(gè)計(jì)算機(jī)視覺(jué)領(lǐng)域。CNN模型火速替代了傳統(tǒng)人工設(shè)計(jì)(hand-crafted)特征和分類(lèi)器,不僅提供了一種端到端的處理方法,還大幅度地刷新了各個(gè)圖像競(jìng)賽任務(wù)的精度,更甚者超越了人眼的精度(LFW人臉識(shí)別任務(wù))。CNN模型在不斷逼近計(jì)算機(jī)視覺(jué)任務(wù)的精度極限的同時(shí),其深度和尺寸也在成倍增長(zhǎng)。

表1 幾種經(jīng)典模型的尺寸,計(jì)算量和參數(shù)數(shù)量對(duì)比

隨之而來(lái)的是一個(gè)很尷尬的場(chǎng)景:如此巨大的模型只能在有限的平臺(tái)下使用,根本無(wú)法移植到移動(dòng)端和嵌入式芯片當(dāng)中。就算想通過(guò)網(wǎng)絡(luò)傳輸,但較高的帶寬占用也讓很多用戶望而生畏。另一方面,大尺寸的模型也對(duì)設(shè)備功耗和運(yùn)行速度帶來(lái)了巨大的挑戰(zhàn)。因此這樣的模型距離實(shí)用還有一段距離。

在這樣的情形下,模型小型化與加速成了亟待解決的問(wèn)題。其實(shí)早期就有學(xué)者提出了一系列CNN模型壓縮方法,包括權(quán)值剪值(prunning)和矩陣SVD分解等,但壓縮率和效率還遠(yuǎn)不能令人滿意。

近年來(lái),關(guān)于模型小型化的算法從壓縮角度上可以大致分為兩類(lèi):從模型權(quán)重?cái)?shù)值角度壓縮和從網(wǎng)絡(luò)架構(gòu)角度壓縮。另一方面,從兼顧計(jì)算速度方面,又可以劃分為:僅壓縮尺寸和壓縮尺寸的同時(shí)提升速度。

本文主要討論如下幾篇代表性的文章和方法,包括SqueezeNet[5]、Deep Compression[6]、XNorNet[7]、Distilling[8]、MobileNet[9]和ShuffleNet[10],也可按照上述方法進(jìn)行大致分類(lèi):

表2 幾種經(jīng)典壓縮方法及對(duì)比

一、SqueezeNet

1.1 設(shè)計(jì)思想

SqueezeNet是F. N. Iandola,S.Han等人于2016年的論文《SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and < 0.5MB model size》中提出的一個(gè)小型化的網(wǎng)絡(luò)模型結(jié)構(gòu),該網(wǎng)絡(luò)能在保證不損失精度的同時(shí),將原始AlexNet壓縮至原來(lái)的510倍左右(< 0.5MB)。

SqueezeNet的核心指導(dǎo)思想是——在保證精度的同時(shí)使用最少的參數(shù)。

而這也是所有模型壓縮方法的一個(gè)終極目標(biāo)。

基于這個(gè)思想,SqueezeNet提出了3點(diǎn)網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)策略:

策略 1.將3x3卷積核替換為1x1卷積核。

這一策略很好理解,因?yàn)?個(gè)1x1卷積核的參數(shù)是3x3卷積核參數(shù)的1/9,這一改動(dòng)理論上可以將模型尺寸壓縮9倍。

策略 2.減小輸入到3x3卷積核的輸入通道數(shù)。

我們知道,對(duì)于一個(gè)采用3x3卷積核的卷積層,該層所有卷積參數(shù)的數(shù)量(不考慮偏置)為:

式中,N是卷積核的數(shù)量,也即輸出通道數(shù),C是輸入通道數(shù)。

因此,為了保證減小網(wǎng)絡(luò)參數(shù),不僅僅需要減少3x3卷積核的數(shù)量,還需減少輸入到3x3卷積核的輸入通道數(shù)量,即式中C的數(shù)量。

策略 3.盡可能的將降采樣放在網(wǎng)絡(luò)后面的層中。

在卷積神經(jīng)網(wǎng)絡(luò)中,每層輸出的特征圖(feature map)是否下采樣是由卷積層的步長(zhǎng)或者池化層決定的。而一個(gè)重要的觀點(diǎn)是:分辨率越大的特征圖(延遲降采樣)可以帶來(lái)更高的分類(lèi)精度,而這一觀點(diǎn)從直覺(jué)上也可以很好理解,因?yàn)榉直媛试酱蟮妮斎肽軌蛱峁┑男畔⒕驮蕉唷?/p>

上述三個(gè)策略中,前兩個(gè)策略都是針對(duì)如何降低參數(shù)數(shù)量而設(shè)計(jì)的,最后一個(gè)旨在最大化網(wǎng)絡(luò)精度。

1.2 網(wǎng)絡(luò)架構(gòu)

基于以上三個(gè)策略,作者提出了一個(gè)類(lèi)似inception的網(wǎng)絡(luò)單元結(jié)構(gòu),取名為fire module。一個(gè)fire module 包含一個(gè)squeeze 卷積層(只包含1x1卷積核)和一個(gè)expand卷積層(包含1x1和3x3卷積核)。其中,squeeze層借鑒了inception的思想,利用1x1卷積核來(lái)降低輸入到expand層中3x3卷積核的輸入通道數(shù)。如圖1所示。

圖1 Fire module結(jié)構(gòu)示意圖[5]

其中,定義squeeze層中1x1卷積核的數(shù)量是s1x1,類(lèi)似的,expand層中1x1卷積核的數(shù)量是e1x1, 3x3卷積核的數(shù)量是e3x3。令s1x1< e1x1+ e3x3從而保證輸入到3x3的輸入通道數(shù)減小。SqueezeNet的網(wǎng)絡(luò)結(jié)構(gòu)由若干個(gè) fire module 組成,另外文章還給出了一些架構(gòu)設(shè)計(jì)上的細(xì)節(jié):

為了保證1x1卷積核和3x3卷積核具有相同大小的輸出,3x3卷積核采用1像素的zero-padding和步長(zhǎng)

squeeze層和expand層均采用RELU作為激活函數(shù)

在fire9后采用50%的dropout

由于全連接層的參數(shù)數(shù)量巨大,因此借鑒NIN[11]的思想,去除了全連接層而改用global average pooling。

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

表3 不同壓縮方法在ImageNet上的對(duì)比實(shí)驗(yàn)結(jié)果[5]

上表顯示,相比傳統(tǒng)的壓縮方法,SqueezeNet能在保證精度不損(甚至略有提升)的情況下,達(dá)到最大的壓縮率,將原始AlexNet從240MB壓縮至4.8MB,而結(jié)合Deep Compression后更能達(dá)到0.47MB,完全滿足了移動(dòng)端的部署和低帶寬網(wǎng)絡(luò)的傳輸。

此外,作者還借鑒ResNet思想,對(duì)原始網(wǎng)絡(luò)結(jié)構(gòu)做了修改,增加了旁路分支,將分類(lèi)精度提升了約3%。

1.4 速度考量

盡管文章主要以壓縮模型尺寸為目標(biāo),但毋庸置疑的一點(diǎn)是,SqueezeNet在網(wǎng)絡(luò)結(jié)構(gòu)中大量采用1x1和3x3卷積核是有利于速度的提升的,對(duì)于類(lèi)似caffe這樣的深度學(xué)習(xí)框架,在卷積層的前向計(jì)算中,采用1x1卷積核可避免額外的im2col操作,而直接利用gemm進(jìn)行矩陣加速運(yùn)算,因此對(duì)速度的優(yōu)化是有一定的作用的。然而,這種提速的作用仍然是有限的,另外,SqueezeNet采用了9個(gè)fire module和兩個(gè)卷積層,因此仍需要進(jìn)行大量常規(guī)卷積操作,這也是影響速度進(jìn)一步提升的瓶頸。

二、Deep Compression

Deep Compression出自S.Han 2016 ICLR的一篇論文《Deep Compression: Compressing Deep Neural Networks with Pruning, Trained Quantization and Huffman Coding》。該文章獲得了ICLR 2016的最佳論文獎(jiǎng),同時(shí)也具有里程碑式的意義,引領(lǐng)了CNN模型小型化與加速研究方向的新狂潮,使得這一領(lǐng)域近兩年來(lái)涌現(xiàn)出了大量的優(yōu)秀工作與文章。

2.1 算法流程

與前面的“架構(gòu)壓縮派”的SqueezeNet不同,Deep Compression是屬于“權(quán)值壓縮派”的。而兩篇文章均出自S.Han團(tuán)隊(duì),因此兩種方法結(jié)合,雙劍合璧,更是能達(dá)到登峰造極的壓縮效果。這一實(shí)驗(yàn)結(jié)果也在上表中得到驗(yàn)證。

Deep Compression的算法流程包含三步,如圖2所示:

圖2 Deep Compression Pipeline[6]

1、Pruning(權(quán)值剪枝)

剪枝的思想其實(shí)早已在早期論文中可以窺見(jiàn),LeCun等人曾經(jīng)就利用剪枝來(lái)稀疏網(wǎng)絡(luò),減小過(guò)擬合的風(fēng)險(xiǎn),提升網(wǎng)絡(luò)泛化性。

圖3是MNIST上訓(xùn)練得到的LeNet conv1卷積層中的參數(shù)分布,可以看出,大部分權(quán)值集中在0處附近,對(duì)網(wǎng)絡(luò)的貢獻(xiàn)較小,在剪值中,將0值附近的較小的權(quán)值置0,使這些權(quán)值不被激活,從而著重訓(xùn)練剩下的非零權(quán)值,最終在保證網(wǎng)絡(luò)精度不變的情況下達(dá)到壓縮尺寸的目的。

實(shí)驗(yàn)發(fā)現(xiàn)模型對(duì)剪枝更敏感,因此在剪值時(shí)建議逐層迭代修剪,另外每層的剪枝比例如何自動(dòng)選取仍然是一個(gè)值得深入研究的課題。

圖3 LeNet conv1層權(quán)值分布圖

2、Quantization (權(quán)值量化)

此處的權(quán)值量化基于權(quán)值聚類(lèi),將連續(xù)分布的權(quán)值離散化,從而減小需要存儲(chǔ)的權(quán)值數(shù)量。

初始化聚類(lèi)中心,實(shí)驗(yàn)證明線性初始化效果最好;

利用k-means算法進(jìn)行聚類(lèi),將權(quán)值劃分到不同的cluster中;

在前向計(jì)算時(shí),每個(gè)權(quán)值由其聚類(lèi)中心表示;

在后向計(jì)算時(shí),統(tǒng)計(jì)每個(gè)cluster中的梯度和將其反傳。


圖4 權(quán)值量化前向和后向計(jì)算過(guò)程[6]

3、Huffman encoding(霍夫曼編碼)

霍夫曼編碼采用變長(zhǎng)編碼將平均編碼長(zhǎng)度減小,進(jìn)一步壓縮模型尺寸。

2.2 模型存儲(chǔ)

前述的剪枝和量化都是為了實(shí)現(xiàn)模型的更緊致的壓縮,以實(shí)現(xiàn)減小模型尺寸的目的。

對(duì)于剪枝后的模型,由于每層大量參數(shù)為0,后續(xù)只需將非零值及其下標(biāo)進(jìn)行存儲(chǔ),文章中采用CSR(Compressed Sparse Row)來(lái)進(jìn)行存儲(chǔ),這一步可以實(shí)現(xiàn)9x~13x的壓縮率。

對(duì)于量化后的模型,每個(gè)權(quán)值都由其聚類(lèi)中心表示(對(duì)于卷積層,聚類(lèi)中心設(shè)為256個(gè),對(duì)于全連接層,聚類(lèi)中心設(shè)為32個(gè)),因此可以構(gòu)造對(duì)應(yīng)的碼書(shū)和下標(biāo),大大減少了需要存儲(chǔ)的數(shù)據(jù)量,此步能實(shí)現(xiàn)約3x的壓縮率。

最后對(duì)上述壓縮后的模型進(jìn)一步采用變長(zhǎng)霍夫曼編碼,實(shí)現(xiàn)約1x的壓縮率。

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

表4 不同網(wǎng)絡(luò)采用Deep Compression后的壓縮率[6]

通過(guò)SqueezeNet+Deep Compression,可以將原始240M的AlexNet壓縮至0.47M,實(shí)現(xiàn)約510x的壓縮率。

2.4 速度考量

可以看出,Deep Compression的主要設(shè)計(jì)是針對(duì)網(wǎng)絡(luò)存儲(chǔ)尺寸的壓縮,但在前向時(shí),如果將存儲(chǔ)模型讀入展開(kāi)后,并沒(méi)有帶來(lái)更大的速度提升。因此Song H.等人專門(mén)針對(duì)壓縮后的模型設(shè)計(jì)了一套基于FPGA的硬件前向加速框架EIE[12],有興趣的可以研究一下。

三、XNorNet

二值網(wǎng)絡(luò)一直是模型壓縮和加速領(lǐng)域經(jīng)久不衰的研究課題之一。將原始32位浮點(diǎn)型的權(quán)值壓縮到1比特,如何最大程度地減小性能損失就成為了研究的關(guān)鍵。

此篇論文主要有以下幾個(gè)貢獻(xiàn):

提出了一個(gè)BWN(Binary-Weight-Network)和XNOR-Network,前者只對(duì)網(wǎng)絡(luò)參數(shù)做二值化,帶來(lái)約32x的存儲(chǔ)壓縮和2x的速度提升,而后者對(duì)網(wǎng)絡(luò)輸入和參數(shù)都做了二值化,在實(shí)現(xiàn)32x存儲(chǔ)壓縮的同時(shí)帶了58x的速度提升;

提出了一個(gè)新型二值化權(quán)值的算法;

第一個(gè)在大規(guī)模數(shù)據(jù)集如ImageNet上提交二值化網(wǎng)絡(luò)結(jié)果的工作;

無(wú)需預(yù)訓(xùn)練,可實(shí)現(xiàn)training from scratch。

3.1 BWN

為了訓(xùn)練二值化權(quán)值網(wǎng)絡(luò),令,其中,即二值濾波器,是是尺度因子。通過(guò)最小化目標(biāo)函數(shù),得到其最優(yōu)解:

即最優(yōu)的二值化濾波器張量B即為原始參數(shù)的符號(hào)函數(shù),最優(yōu)的尺度因子為每個(gè)濾波器權(quán)值的絕對(duì)值的均值。

訓(xùn)練算法如圖5所示,值得注意的是,只有在前向計(jì)算和后向傳播時(shí)使用二值化后的權(quán)值,在更新參數(shù)時(shí)依然使用原始參數(shù),這是因?yàn)槿绻褂枚祷蟮膮?shù)會(huì)導(dǎo)致很小的梯度下降,從而使得訓(xùn)練無(wú)法收斂。

3.2 XNOR-Net

在XNOR網(wǎng)絡(luò)中,優(yōu)化的目標(biāo)是將兩個(gè)實(shí)數(shù)向量的點(diǎn)乘近似到兩個(gè)二值向量的點(diǎn)乘,即式中,類(lèi)似的,有最優(yōu)解如下式

在卷積計(jì)算中,輸入和權(quán)值均量化成了二值,因此傳統(tǒng)的乘法計(jì)算變成了異或操作,而非二值化數(shù)據(jù)的計(jì)算只占了很小一部分。

XNOR-Net中一個(gè)典型的卷積單元如圖6所示,與傳統(tǒng)單元不同,各模塊的順序有了調(diào)整。為了減少二值化帶來(lái)的精度損失,對(duì)輸入數(shù)據(jù)首先進(jìn)行BN歸一化處理,BinActiv層用于對(duì)輸入做二值化,接著進(jìn)行二值化的卷積操作,最后進(jìn)行pooling。

圖5 BWN訓(xùn)練過(guò)程[7]

圖6 傳統(tǒng)卷積單元與XNOR-Net卷積單元對(duì)比[7]

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

表5 ImageNet上二值網(wǎng)絡(luò)與AlexNet結(jié)果對(duì)比[7]

與ALexNet相比,BWN網(wǎng)絡(luò)能夠達(dá)到精度基本不變甚至略好,XNOR-Net由于對(duì)輸入也做了二值化,性能稍降。

四、Distilling

Distilling算法是Hinton等人在論文Distilling the Knowledge in a Neural Network中提出的一種類(lèi)似網(wǎng)絡(luò)遷移的學(xué)習(xí)算法。

4.1 基本思想

Distilling直譯過(guò)來(lái)即蒸餾,其基本思想是通過(guò)一個(gè)性能好的大網(wǎng)絡(luò)來(lái)教小網(wǎng)絡(luò)學(xué)習(xí),從而使得小網(wǎng)絡(luò)能夠具備跟大網(wǎng)絡(luò)一樣的性能,但蒸餾后的小網(wǎng)絡(luò)參數(shù)規(guī)模遠(yuǎn)遠(yuǎn)小于原始大網(wǎng)絡(luò),從而達(dá)到壓縮網(wǎng)絡(luò)的目的。

其中,訓(xùn)練小模型(distilled model)的目標(biāo)函數(shù)由兩部分組成

1) 與大模型(cumbersome model)的softmax輸出的交叉熵(cross entropy),稱為軟目標(biāo)(soft target)。其中,softmax的計(jì)算加入了超參數(shù)溫度T,用以控制輸出,計(jì)算公式變?yōu)?/p>

溫度T越大,輸出的分布越緩和,概率zi/T越小,熵越大,但若T過(guò)大,會(huì)導(dǎo)致較大熵引起的不確定性增加,增加了不可區(qū)分性。

至于為何要以soft target來(lái)計(jì)算損失,作者認(rèn)為,在分類(lèi)問(wèn)題中,真值(groundtruth)是一個(gè)確定性的,即one-hot vector。以手寫(xiě)數(shù)字分類(lèi)來(lái)說(shuō),對(duì)于一個(gè)數(shù)字3,它的label是3的概率是1,而是其他數(shù)值的概率是0,而對(duì)于soft target,它能表征label是3的概率,假如這個(gè)數(shù)字寫(xiě)的像5,還可以給出label是5的一定概率,從而提供更多信息,如

2)與真值(groundtruth)的交叉熵(T=1)

訓(xùn)練的損失為上述兩項(xiàng)損失的加權(quán)和,通常第二項(xiàng)要小很多。

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

作者給出了在語(yǔ)音識(shí)別上的實(shí)驗(yàn)結(jié)果對(duì)比,如下表

表6 蒸餾模型與原始模型精度對(duì)比[8]

上表顯示,蒸餾后的模型的精確度和單字錯(cuò)誤率和用于產(chǎn)生軟目標(biāo)的10個(gè)模型的性能相當(dāng),小模型成功地學(xué)到了大模型的識(shí)別能力。

4.3 速度考量

Distilling的提出原先并非針對(duì)網(wǎng)絡(luò)加速,而最終計(jì)算的效率仍然取決于蒸餾模型的計(jì)算規(guī)模,但理論上蒸餾后的小模型相對(duì)原始大模型的計(jì)算速度在一定程度上會(huì)有提升,但速度提升的比例和性能維持的權(quán)衡是一個(gè)值得研究的方向。

五、MobileNet

MobileNet是由Google提出的針對(duì)移動(dòng)端部署的輕量級(jí)網(wǎng)絡(luò)架構(gòu)??紤]到移動(dòng)端計(jì)算資源受限以及速度要求嚴(yán)苛,MobileNet引入了傳統(tǒng)網(wǎng)絡(luò)中原先采用的group思想,即限制濾波器的卷積計(jì)算只針對(duì)特定的group中的輸入,從而大大降低了卷積計(jì)算量,提升了移動(dòng)端前向計(jì)算的速度。

5.1 卷積分解

MobileNet借鑒factorized convolution的思想,將普通卷積操作分成兩部分:

Depthwise Convolution

每個(gè)卷積核濾波器只針對(duì)特定的輸入通道進(jìn)行卷積操作,如下圖所示,其中M是輸入通道數(shù),DK是卷積核尺寸:

圖7 Depthwise Convolution[9]

Depthwise convolution的計(jì)算復(fù)雜度為 DKDKMDFDF,其中DF是卷積層輸出的特征圖的大小。

Pointwise Convolution

采用1x1大小的卷積核將depthwise convolution層的多通道輸出進(jìn)行結(jié)合,如下圖,其中N是輸出通道數(shù):

圖8 Pointwise Convolution[9]

Pointwise Convolution的計(jì)算復(fù)雜度為 MNDFDF

上面兩步合稱depthwise separable convolution

標(biāo)準(zhǔn)卷積操作的計(jì)算復(fù)雜度為DKDKMNDFDF

因此,通過(guò)將標(biāo)準(zhǔn)卷積分解成兩層卷積操作,可以計(jì)算出理論上的計(jì)算效率提升比例:

對(duì)于3x3尺寸的卷積核來(lái)說(shuō),depthwise separable convolution在理論上能帶來(lái)約8~9倍的效率提升。

5.2 模型架構(gòu)

圖9 普通卷積單元與MobileNet 卷積單元對(duì)比[9]

MobileNet的卷積單元如上圖所示,每個(gè)卷積操作后都接著一個(gè)BN操作和ReLU操作。在MobileNet中,由于3x3卷積核只應(yīng)用在depthwise convolution中,因此95%的計(jì)算量都集中在pointwise convolution 中的1x1卷積中。而對(duì)于caffe等采用矩陣運(yùn)算GEMM實(shí)現(xiàn)卷積的深度學(xué)習(xí)框架,1x1卷積無(wú)需進(jìn)行im2col操作,因此可以直接利用矩陣運(yùn)算加速庫(kù)進(jìn)行快速計(jì)算,從而提升了計(jì)算效率。

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

表7 MobileNet與主流大模型在ImageNet上精度對(duì)比[9]

上表顯示,MobileNet在保證精度不變的同時(shí),能夠有效地減少計(jì)算操作次數(shù)和參數(shù)量,使得在移動(dòng)端實(shí)時(shí)前向計(jì)算成為可能。

六、ShuffleNet

ShuffleNet是Face++今年提出了一篇用于移動(dòng)端前向部署的網(wǎng)絡(luò)架構(gòu)。ShuffleNet基于MobileNet的group思想,將卷積操作限制到特定的輸入通道。而與之不同的是,ShuffleNet將輸入的group進(jìn)行打散,從而保證每個(gè)卷積核的感受野能夠分散到不同group的輸入中,增加了模型的學(xué)習(xí)能力。

6.1 設(shè)計(jì)思想

我們知道,卷積中的group操作能夠大大減少卷積操作的計(jì)算次數(shù),而這一改動(dòng)帶來(lái)了速度增益和性能維持在MobileNet等文章中也得到了驗(yàn)證。然而group操作所帶來(lái)的另一個(gè)問(wèn)題是:特定的濾波器僅對(duì)特定通道的輸入進(jìn)行作用,這就阻礙了通道之間的信息流傳遞,group數(shù)量越多,可以編碼的信息就越豐富,但每個(gè)group的輸入通道數(shù)量減少,因此可能造成單個(gè)卷積濾波器的退化,在一定程度上削弱了網(wǎng)絡(luò)了表達(dá)能力。

6.2 網(wǎng)絡(luò)架構(gòu)

在此篇工作中,網(wǎng)絡(luò)架構(gòu)的設(shè)計(jì)主要有以下幾個(gè)創(chuàng)新點(diǎn):

提出了一個(gè)類(lèi)似于ResNet的BottleNeck單元

借鑒ResNet的旁路分支思想,ShuffleNet也引入了類(lèi)似的網(wǎng)絡(luò)單元。不同的是,在stride=2的單元中,用concat操作代替了add操作,用average pooling代替了1x1stride=2的卷積操作,有效地減少了計(jì)算量和參數(shù)。單元結(jié)構(gòu)如圖10所示。

提出將1x1卷積采用group操作會(huì)得到更好的分類(lèi)性能

在MobileNet中提過(guò),1x1卷積的操作占據(jù)了約95%的計(jì)算量,所以作者將1x1也更改為group卷積,使得相比MobileNet的計(jì)算量大大減少。

提出了核心的shuffle操作將不同group中的通道進(jìn)行打散,從而保證不同輸入通道之間的信息傳遞。

ShuffleNet的shuffle操作如圖11所示。

圖10 ShuffleNet網(wǎng)絡(luò)單元[10]

圖11 不同group間的shuffle操作[10]

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

表8 ShuffleNet與MobileNet在ImageNet上精度對(duì)比[10]

上表顯示,相對(duì)于MobileNet,ShuffleNet的前向計(jì)算量不僅有效地得到了減少,而且分類(lèi)錯(cuò)誤率也有明顯提升,驗(yàn)證了網(wǎng)絡(luò)的可行性。

6.4 速度考量

作者在ARM平臺(tái)上對(duì)網(wǎng)絡(luò)效率進(jìn)行了驗(yàn)證,鑒于內(nèi)存讀取和線程調(diào)度等因素,作者發(fā)現(xiàn)理論上4x的速度提升對(duì)應(yīng)實(shí)際部署中約2.6x。作者給出了與原始AlexNet的速度對(duì)比,如下表。

表9 ShuffleNet與AlexNet在ARM平臺(tái)上速度對(duì)比[10]

結(jié)束語(yǔ)

近幾年來(lái),除了學(xué)術(shù)界涌現(xiàn)的諸多CNN模型加速工作,工業(yè)界各大公司也推出了自己的移動(dòng)端前向計(jì)算框架,如Google的Tensorflow、Facebook的caffe2以及蘋(píng)果今年剛推出的CoreML。相信結(jié)合不斷迭代優(yōu)化的網(wǎng)絡(luò)架構(gòu)和不斷發(fā)展的硬件計(jì)算加速技術(shù),未來(lái)深度學(xué)習(xí)在移動(dòng)端的部署將不會(huì)是一個(gè)難題。

參考文獻(xiàn)

[1] ImageNet Classification with Deep Convolutional Neural Networks

[2] Very Deep Convolutional Networks for Large-Scale Image Recognition

[3] Going Deeper with Convolutions

[4] Rethinking the Inception Architecture for Computer Vision

[5] SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and < 0.5MB model size

[6] Deep Compression: Compressing Deep Neural Networks with Pruning, Trained Quantization and Huffman Coding

[7] Distilling the Knowledge in a Neural Network

[8] XNOR-Net: ImageNet Classification Using Binary Convolutional Neural Networks

[9] MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications

[10] ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices

[11] Network in Network

[12] EIE: Efficient Inference Engine on Compressed Deep Neural Network

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

原文標(biāo)題:CNN 模型壓縮與加速算法綜述

文章出處:【微信號(hào):AI_Thinker,微信公眾號(hào):人工智能頭條】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    具有混合精度的高度可擴(kuò)展的深度學(xué)習(xí)訓(xùn)練系統(tǒng)

    根據(jù)論文實(shí)驗(yàn)部分的內(nèi)容,研究人員選取的模型是AlexNet和ResNet-50,它們各自代表一典型的CNN。AlexNet的參數(shù)數(shù)量是ResNet-50的2.5倍,而ResNet-5
    的頭像 發(fā)表于 08-02 09:25 ?4959次閱讀
    一<b class='flag-5'>種</b>具有混合精度的高度可擴(kuò)展的深度學(xué)習(xí)訓(xùn)練系統(tǒng)

    如何計(jì)算transformer模型參數(shù)量

    參數(shù)規(guī)模大,訓(xùn)練數(shù)據(jù)規(guī)模大。以GPT3為例,GPT3的參數(shù)量為1750億,訓(xùn)練數(shù)據(jù)達(dá)到了570GB。進(jìn)而,訓(xùn)練大規(guī)模語(yǔ)言模型面臨兩個(gè)主要挑戰(zhàn):顯存效率和
    的頭像 發(fā)表于 07-10 09:13 ?1.5w次閱讀
    如何<b class='flag-5'>計(jì)算</b>transformer<b class='flag-5'>模型</b>的<b class='flag-5'>參數(shù)量</b>

    模型推理顯存和計(jì)算估計(jì)方法研究

    估算剪枝后的模型所需的顯存大小。 三、計(jì)算估計(jì)方法 基于模型結(jié)構(gòu)的計(jì)算估計(jì) 根據(jù)深度學(xué)習(xí)
    發(fā)表于 07-03 19:43

    構(gòu)建CNN網(wǎng)絡(luò)模型并優(yōu)化的一般化建議

    ,從而得到對(duì)我們有價(jià)值的識(shí)別信息。但這種迭代性并不是十分必要的,因?yàn)閺膶?shí)踐來(lái)看,即使只有單層網(wǎng)絡(luò)的模型,只要擁有充分數(shù)量的神經(jīng)元,也可以獲得較高的準(zhǔn)確率。不過(guò)該方式的一個(gè)重要缺點(diǎn)就是參數(shù)
    發(fā)表于 10-28 08:02

    大家是怎么壓榨CNN模型

    【技術(shù)綜述】為了壓榨CNN模型,這幾年大家都干了什么
    發(fā)表于 05-29 14:49

    求助耦合電感2模型參數(shù)如何轉(zhuǎn)換?

    耦合電感有2模型1.告知耦合電感的2個(gè)自感、互感以及耦合系數(shù)2.匝數(shù)比、自感、漏感(相當(dāng)于一個(gè)理想變壓器原邊和副邊的電感)請(qǐng)問(wèn)我已知
    發(fā)表于 01-03 14:55

    ARM用以解決圖像超分模型過(guò)參數(shù)問(wèn)題

    本文提出一Any-time super-Resolution Method(ARM)用以解決圖像超分模型過(guò)參數(shù)問(wèn)題,其出發(fā)點(diǎn)在于如下三個(gè)觀察:不同圖像塊的性能會(huì)超分模型的大小而變化;
    發(fā)表于 06-10 17:52

    一文詳解CNN

    數(shù)字識(shí)別,將數(shù)字平移到圖像另一個(gè)位置,被認(rèn)為是不同的圖片)2. 參數(shù)量太大,難以訓(xùn)練,容易陷入局部極值, 這樣便有了后來(lái)的CNNCNN是減少模型
    發(fā)表于 08-18 06:56

    CNN模型思路、加速算法設(shè)計(jì)及其實(shí)驗(yàn)樣例

    設(shè)計(jì)(hand-crafted)特征和分類(lèi)器,不僅提供了一端到端的處理方法,還大幅度地刷新了各個(gè)圖像競(jìng)賽任務(wù)的精度,更甚者超越了人眼的精度(LFW人臉識(shí)別任務(wù))。CNN模型在不斷逼近計(jì)算
    發(fā)表于 11-15 14:58 ?8506次閱讀
    <b class='flag-5'>CNN</b><b class='flag-5'>模型</b>思路、加速算法設(shè)計(jì)及其實(shí)驗(yàn)樣例

    CNN和RNN結(jié)合與對(duì)比,實(shí)例講解

    對(duì)比。 二、CNN與RNN對(duì)比 1、CNN卷積神經(jīng)網(wǎng)絡(luò)與RNN遞歸神經(jīng)網(wǎng)絡(luò)直觀圖 2、相同點(diǎn): 2.1. 傳統(tǒng)神經(jīng)網(wǎng)絡(luò)的擴(kuò)展。 2.2. 前向計(jì)算
    發(fā)表于 09-06 22:32 ?1037次閱讀

    基于輕量級(jí)CNN等的惡意軟件家族分類(lèi)模型

    現(xiàn)有基于卷積神經(jīng)網(wǎng)絡(luò)(CNN)的惡意代碼分類(lèi)方法存在計(jì)算資源消耗較大的問(wèn)題。為降低分類(lèi)過(guò)程中的計(jì)算參數(shù)量,構(gòu)建基于惡意代碼可視化和輕量級(jí)
    發(fā)表于 06-02 15:40 ?20次下載

    ai大模型和小模型的區(qū)別

    ,大模型通常指參數(shù)數(shù)量較多、結(jié)構(gòu)比較復(fù)雜、精度較高、計(jì)算較大的模型。它們能夠處理更復(fù)雜的問(wèn)題,能夠提高
    的頭像 發(fā)表于 08-08 17:30 ?1.2w次閱讀

    盤(pán)古大模型參數(shù)量有多少

    盤(pán)古大模型參數(shù)量有多少 盤(pán)古大模型(PanGu-α)是由中國(guó)科學(xué)院計(jì)算技術(shù)研究所提供的一語(yǔ)言生成預(yù)訓(xùn)練
    的頭像 發(fā)表于 08-17 11:28 ?4832次閱讀

    cnn卷積神經(jīng)網(wǎng)絡(luò)模型 卷積神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型 生成卷積神經(jīng)網(wǎng)絡(luò)模型

    cnn卷積神經(jīng)網(wǎng)絡(luò)模型 卷積神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型 生成卷積神經(jīng)網(wǎng)絡(luò)模型? 卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN
    的頭像 發(fā)表于 08-21 17:11 ?2032次閱讀

    cnn卷積神經(jīng)網(wǎng)絡(luò)三大特點(diǎn)是什么

    (Local Connectivity) 局部連接是CNN的核心特點(diǎn)之一,它允許網(wǎng)絡(luò)在處理圖像時(shí)只關(guān)注局部區(qū)域的特征。與傳統(tǒng)的全連接神經(jīng)網(wǎng)絡(luò)不同,CNN的卷積層只對(duì)輸入數(shù)據(jù)的局部區(qū)域進(jìn)行計(jì)算,而不是對(duì)整個(gè)輸入數(shù)據(jù)進(jìn)行
    的頭像 發(fā)表于 07-03 09:26 ?4376次閱讀