亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于損失變化的CNN混合精度量化方法

        2024-02-22 07:45:12何益智李鑒柏張少爽劉文龍
        關(guān)鍵詞:敏感度損失準(zhǔn)確率

        何益智,李 釗+,李鑒柏,張少爽,劉文龍

        (1.山東理工大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,山東 淄博 255000;2.淄博職業(yè)學(xué)院 電子電氣工程學(xué)院,山東 淄博 255000)

        0 引 言

        邊緣計(jì)算由于其低延遲、低成本、低功耗、隱私保護(hù)等優(yōu)點(diǎn)在近年被廣泛研究。然而,許多CNN模型因?yàn)槠漭^高的計(jì)算成本和內(nèi)存占用,減緩了模型推理和訓(xùn)練速度[1],限制了它們在邊緣設(shè)備上的應(yīng)用。因此,研究人員提出了許多CNN模型的壓縮方法。

        Howard等[2]提出了一種輕量級CNN模型Mobilenet-V3采用深度可分離卷積代替?zhèn)鹘y(tǒng)的卷積計(jì)算,極大地降低了參數(shù)數(shù)量。He等[3]提出一種基于卷積核范數(shù)的卷積核剪枝方法,刪除可以被替代的網(wǎng)絡(luò)層,降低模型中的冗余度。另外,還提出了許多量化方法,在文獻(xiàn)[4]中表明,CNN模型中參數(shù)可以被量化為低位寬定點(diǎn)數(shù),代替32位浮點(diǎn)數(shù)運(yùn)算,節(jié)約硬件資源,提高運(yùn)算速度,便于部署在FPGA(field programmable gate array)等移動(dòng)平臺。Liu等[5,6]提出超低位寬量化方法,將權(quán)重和激活值量化到1或-1。然而在超低位寬的情況下使用統(tǒng)一的量化位寬會(huì)嚴(yán)重影響模型的性能,解決這個(gè)問題的一個(gè)非常有效的方法是通過混合精度量化。已有工作使用的強(qiáng)化學(xué)習(xí)[7]或者可微分搜索混合精度量化[8]允許神經(jīng)網(wǎng)絡(luò)的每一層擁有不同的量化位寬,在很大程度上保證模型的推理準(zhǔn)確率,但是確定每一層的位寬導(dǎo)致了一個(gè)指數(shù)級的搜索空間,同時(shí)每搜索一步都需要重訓(xùn)練CNN模型,使得已有算法非常耗時(shí)。

        針對上述問題,本文提出一種基于損失變化的混合精度量化方法,根據(jù)量化層的一階和二階導(dǎo)數(shù)信息確定量化層的敏感度,指導(dǎo)位寬分配。然后利用K-means方法將敏感度相近的量化層聚類為量化塊,以塊為單位調(diào)整位寬分配策略降低搜索空間。同時(shí)提出一種自適應(yīng)量化策略搜索方式,根據(jù)按歷史策略訓(xùn)練后的反饋結(jié)果自行調(diào)整“壓縮態(tài)”和“恢復(fù)態(tài)”,可在壓縮模型的同時(shí)確保模型推理準(zhǔn)確率始終控制在設(shè)定范圍內(nèi)。此外,將量化訓(xùn)練中的參數(shù)量化和BN(batch normalization)層進(jìn)行整合,以減少傳統(tǒng)量化訓(xùn)練中冗余的乘法計(jì)算,在不影響結(jié)果的條件下可加速量化訓(xùn)練過程。

        1 基于損失變化的混合精度策略搜索設(shè)計(jì)

        CNN模型中存在大量乘加運(yùn)算,采用全精度浮點(diǎn)數(shù)進(jìn)行運(yùn)算需要較高的算力,并且乘加運(yùn)算主要集中在卷積層和全連接層,因此選取出以上網(wǎng)絡(luò)層作為量化層,將量化層按照混合精度策略分配不同量化位寬。該過程具體思路如圖1所示。

        圖1 混合精度量化方法框架

        首先計(jì)算出CNN模型中各量化層加入干擾后引起的模型損失變化量,依據(jù)損失變化量確定每個(gè)量化層敏感度值,然后采用K-means方法根據(jù)量化層敏感度值將其聚類成量化塊。把策略搜索模塊得出的量化策略對應(yīng)到每個(gè)量化塊中,進(jìn)而傳遞到所有量化層中。按照策略重新訓(xùn)練網(wǎng)絡(luò),并將訓(xùn)練結(jié)果反饋給策略搜索模塊,根據(jù)反饋結(jié)果和敏感度調(diào)整輸出策略,直至找到最佳位寬分配策略。

        1.1 量化后模型損失值變化分析

        模型量化后產(chǎn)生的損失值變化是由于CNN模型中原32位浮點(diǎn)型參數(shù)通過量化轉(zhuǎn)化成n位表示的低位寬數(shù)后,兩種數(shù)據(jù)類型間的誤差導(dǎo)致的,我們對參數(shù)量化過程和損失值的變化做出理論分析。首先由32位浮點(diǎn)數(shù)X轉(zhuǎn)化為n位整數(shù)Xint,過程如式(1)所示

        (1)

        其中,Qmin=-2n-1,Qmax=2n-1-1,z為常數(shù),表示零點(diǎn),S為縮放因子,其計(jì)算表達(dá)式如式(2)所示

        (2)

        Xmax和Xmin分別為X集合中最大值和最小值,round()為取整函數(shù),clamp()函數(shù)定義式(3)為

        (3)

        隨后按照式(4)恢復(fù)成近似原值X的可用n位表示的數(shù)XQ

        XQ=(Xint+z)×S

        (4)

        因此X值經(jīng)過式(1),式(4)量化成XQ后產(chǎn)生一個(gè)了量化誤差。同理CNN模型中權(quán)重值W量化后變?yōu)閃Q,WQ代替原32位浮點(diǎn)數(shù)W引起了模型損失函數(shù)值的變化,該過程如圖2所示。

        圖2 經(jīng)過量化后的部分CNN模型

        把量化誤差視為一種干擾,并且在原參數(shù)W處利用泰勒公式展開,可近似計(jì)算出由量化引起的模型損失變化[9]如式(5)所示

        (5)

        ΔW為量化引起的誤差,L表示損失函數(shù),g為關(guān)于參數(shù)W的一階導(dǎo)數(shù),H為關(guān)于參數(shù)W的二階導(dǎo)數(shù)(Hessian矩陣)。一般情況下,模型量化后會(huì)造成損失函數(shù)值的增大和推理準(zhǔn)確率的下降。因此,為保證模型量化后的推理準(zhǔn)確率,需將目標(biāo)函數(shù)ΔL取最小值,ΔL表示為

        (6)

        從上式可以看出量化后引起的損失值變化與每層網(wǎng)絡(luò)的一階,二階導(dǎo)數(shù)信息和量化誤差ΔW相關(guān)。

        1.2 計(jì)算量化層敏感度值

        通過以上分析可以表明量化后模型損失值在一階和二階信息下都會(huì)受到影響。在研究二階信息帶來的損失變化時(shí),由于在CNN模型中的權(quán)重?cái)?shù)據(jù)很多,直接計(jì)算Hessian矩陣相關(guān)值十分困難。所以,可利用冪迭代方法來近似估計(jì)Hessian矩陣的最大特征值,沿對應(yīng)的特征向量方向?qū)γ繉泳W(wǎng)絡(luò)參數(shù)加入干擾,衡量模型損失變化量[10]。

        因此我們可以對模型中每個(gè)量化層中分別加入梯度方向和Hessian矩陣特征向量方向上的擾動(dòng),作為量化誤差。然后分別計(jì)算模型損失函數(shù)值,用損失函數(shù)變化值衡量每個(gè)量化層的一階和二階信息帶來的影響,作為量化層的敏感度值,根據(jù)敏感度值合理分配位寬。具體過程如算法1所示:

        算法1:量化層敏感度計(jì)算

        輸入:預(yù)訓(xùn)練模型,訓(xùn)練數(shù)據(jù)集

        輸出:各量化層敏感度值

        (1) 計(jì)算預(yù)訓(xùn)練模型的損失值Loss=Criterion(Model(inputs),targets)

        (2) 計(jì)算各量化層權(quán)重的一階導(dǎo)數(shù)g=Loss.backward()

        (3) fori=1 toNdo:

        (4) 設(shè)置一個(gè)與第i個(gè)量化層相同維度的隨機(jī)向量Vi=random(gi)

        (5) 標(biāo)準(zhǔn)化Vi=normalization(Vi)

        (6) forj=1 toMaxIterdo:

        (7) 計(jì)算第i個(gè)量化層Hessian矩陣特性向量,記作HiVi

        (8) 標(biāo)準(zhǔn)化Vi=normalization(HiVi)

        (9) end for

        (10) 第i個(gè)量化層加入第一種干擾Wi=Wi+λ·direction(gi)

        (11) 計(jì)算加入干擾后的模型損失值L1=Loss(Model(inputs,W),targets)

        (12) 第i個(gè)量化層加入第二種干擾Wi=Wi+λ·direction(Vi)

        (13) 重新計(jì)算模型損失值L2

        (14) 確定每個(gè)量化層敏感度值Si=Max(L1,L2)

        (15) end for

        在算法1中,步驟(1)~步驟(9)介紹了冪迭代法的過程,首先按照步驟(1)利用常見的交叉熵?fù)p失函數(shù)Criterion()計(jì)算預(yù)訓(xùn)練模型的損失值,通過步驟(2)反向傳播計(jì)算出預(yù)訓(xùn)練模型中各個(gè)量化層的梯度g。接下來選取第i個(gè)量化層,初始化一個(gè)隨機(jī)向量v,要求與目前第i個(gè)量化層維度相同,并做歸一化處理,如步驟(4)、步驟(5)所示。通過步驟(7)對該層的Hessian矩陣的特征向量HiVi,采用如式(7)所示鏈?zhǔn)角髮?dǎo)法則,其中g(shù)i,Hi,Wi分別為第i層的一階導(dǎo)數(shù)、二階導(dǎo)數(shù)和權(quán)重

        (7)

        按照步驟(8)把該值歸一化處理后迭代執(zhí)行步驟(7)、步驟(8),則計(jì)算出預(yù)訓(xùn)練模型第i個(gè)量化層梯度和Hessian矩陣的最大特征值對應(yīng)的特征向量。然后在這兩個(gè)方向上加入干擾值作為量化產(chǎn)生誤差。步驟(10)、步驟(11)表示對第i個(gè)量化層施加梯度方向的干擾,并計(jì)算在該層受到擾動(dòng)后整個(gè)CNN模型損失值L1,λ值可用來調(diào)整擾動(dòng)值大小。步驟(12)、步驟(13)表示對第i個(gè)量化層施加最大特征向量方向的干擾,然后重新計(jì)算其模型損失值L2。最后取L1和L2的最大值作為第i個(gè)量化層敏感度值。按照上述流程計(jì)算出所有量化層敏感度值。

        在文獻(xiàn)中[11],僅采用一階信息作為敏感度值,可能會(huì)造成位寬分配不合理的情況。例如在一個(gè)函數(shù)的極小值點(diǎn)處,此時(shí)一階導(dǎo)數(shù)為零,假設(shè)極小值處二階導(dǎo)數(shù)大,曲線曲率大,即使加入較小的干擾也會(huì)引起函數(shù)值較大的變化。若只把一階信息作為衡量敏感度的指標(biāo),則在后續(xù)過程中可能導(dǎo)致位寬分配不合理。因此需要綜合考慮根據(jù)每個(gè)量化層的一階和二階信息,可更加準(zhǔn)確判斷每個(gè)量化層對整個(gè)CNN模型的影響大小,選擇出更合適的位寬值。

        1.3 K-means聚類量化層

        目前量化研究已經(jīng)可以實(shí)現(xiàn)在統(tǒng)一分配8位及以上位寬情況下,實(shí)現(xiàn)無損壓縮。本文提出的方法是在此基礎(chǔ)上探索更高壓縮比,所以量化位寬設(shè)定為2~8位。但是為模型中所有量化層確定位寬會(huì)帶來指數(shù)級搜索空間,因此提出采用K-means方法根據(jù)量化層的敏感度值將其聚類成量化塊,以量化塊為最小單位調(diào)整位寬分配策略,降低搜索空間。其中關(guān)鍵問題是對K值的選擇,在本文中K值選擇是基于量化策略的設(shè)定,網(wǎng)絡(luò)中所有量化層位寬均在[2,8]區(qū)間內(nèi),在理想情況下,根據(jù)位寬數(shù)可將所有量化層分為7個(gè)量化塊,因此可將K值設(shè)定為7。

        假設(shè)CNN模型中有n個(gè)量化層,需把所有量化層集合N={N1,N2,…,Nn} 聚類到k個(gè)量化塊集合K={K1,K2,…,Kk} 中。從所有量化層中隨機(jī)選擇k個(gè)量化層的敏感度值作為k個(gè)量化塊的質(zhì)心,并根據(jù)距離式(8)計(jì)算出每個(gè)量化層Ni與量化塊質(zhì)心μj的距離,并把所有量化層就近歸入到量化塊中

        (8)

        其中,S(Ni) 表示量化層Ni的敏感度值,μj為第j個(gè)量化塊的質(zhì)心,量化層加入到量化塊后,根據(jù)質(zhì)心計(jì)算式(9)更新每個(gè)量化塊的質(zhì)心值

        (9)

        迭代計(jì)算式(8)、式(9),使得目標(biāo)函數(shù)(10)達(dá)到收斂狀態(tài)。即每個(gè)量化塊中的量化層處于穩(wěn)定狀態(tài),不再做出調(diào)整,質(zhì)心不再發(fā)生變化,各量化層敏感度與質(zhì)心誤差平方和達(dá)到最小,則完成將量化層聚類為量化塊的過程

        (10)

        1.4 自適應(yīng)搜索設(shè)計(jì)

        由于原敏感度值表示較為復(fù)雜,在搜索設(shè)計(jì)時(shí)不便于使用,因此采用相對敏感度代替原敏感度。把所有量化塊K的質(zhì)心μ從大到小排序,把排序后的相對順序值設(shè)定為量化塊的相對敏感度值S′,可表示為

        S′i=Sort(μi)

        (11)

        考慮到敏感度大的量化塊在量化時(shí)會(huì)引起更明顯的擾動(dòng),則設(shè)計(jì)搜索方法時(shí),需要按照S′值依次確定量化塊的位寬值,同時(shí)滿足高敏感度值的量化塊分配的位寬要不少于低敏感度量化塊的原則。具體設(shè)計(jì)流程如圖3所示。

        圖3 策略搜索流程

        首先,將所有量化塊設(shè)定為未標(biāo)記狀態(tài),所有位寬設(shè)定為8位,從全8位量化開始搜索。并設(shè)定了兩種搜索狀態(tài):“壓縮態(tài)”,在該狀態(tài)下降低所有未標(biāo)記量化塊位寬數(shù);“恢復(fù)態(tài)”,即逐步增加未標(biāo)記量化塊中量化塊的位寬數(shù)。

        每確定一個(gè)位寬分配策略,均按照此策略采用第2節(jié)所述量化方法訓(xùn)練模型,將訓(xùn)練結(jié)果與設(shè)定的準(zhǔn)確率比較結(jié)果,若滿足設(shè)定要求,則將當(dāng)前搜索策略置于“壓縮態(tài)”,將所有未標(biāo)記量化塊位寬數(shù)減1;若不滿足設(shè)定要求,則將當(dāng)前搜索策略置于“恢復(fù)態(tài)”,選擇未標(biāo)記且具有最大S′值的量化塊,增加其位寬數(shù)。按照更新后的量化策略重新訓(xùn)練模型,判斷結(jié)果是否滿足設(shè)定要求,若不能滿足設(shè)定要求,仍然按照“恢復(fù)態(tài)”增加量化塊位寬數(shù);若能滿足,則把選擇的量化塊都置為已標(biāo)記狀態(tài),位寬設(shè)定為當(dāng)前策略下的位寬值,直至所有量化塊都置為已標(biāo)記狀態(tài)。策略搜索方法均以量化塊為單位,相比于以層為單位調(diào)整位寬可避免大量無效的量化策略,加快搜索過程。

        在實(shí)驗(yàn)過程中發(fā)現(xiàn),在策略搜索處于“壓縮態(tài)”時(shí),雖然位寬減小后可以達(dá)到設(shè)定的精度要求,但是當(dāng)前策略與歷史策略模型推理準(zhǔn)確率變化較大,則在后續(xù)壓縮過程中并不利于找到最優(yōu)解,易陷入局部最優(yōu)。為避免該情況的出現(xiàn),在“壓縮態(tài)”種嵌入補(bǔ)償機(jī)制,即在策略搜索處于“壓縮態(tài)”時(shí),若滿足式(12),將當(dāng)前搜索策略切換到“恢復(fù)態(tài)”,按照相對敏感度值依次恢復(fù)量化塊的位寬值,直至不滿足式(12),繼續(xù)進(jìn)行壓縮

        Plast-Pnew≥α(P-Pset)

        (12)

        其中,Plast為歷史策略下模型準(zhǔn)確率,Pnew為當(dāng)前策略下模型準(zhǔn)確率,P為全精度模型準(zhǔn)確率,Pset為目標(biāo)準(zhǔn)確率,α為超參數(shù),可根據(jù)Pset調(diào)節(jié)。

        另外,在“恢復(fù)態(tài)”中引入敏感度調(diào)節(jié)模塊。某些量化塊在增加位寬,訓(xùn)練結(jié)果較之前沒有明顯改善,故引入該模塊可根據(jù)實(shí)際訓(xùn)練結(jié)果動(dòng)態(tài)調(diào)節(jié)量化塊。即在搜索策略處于“恢復(fù)態(tài)”時(shí),若Pnew-Plast≤0,將策略恢復(fù)成歷史策略,并且降低對應(yīng)量化塊的相對敏感度值。

        2 量化訓(xùn)練

        一般情況下,原32位浮點(diǎn)型權(quán)重量化成低位寬數(shù)后,模型推理準(zhǔn)確率會(huì)有較大損失,因此采用量化訓(xùn)練恢復(fù)原有的準(zhǔn)確率。本文提出將量化訓(xùn)練中的參數(shù)量化和BN層合并,改變傳統(tǒng)量化訓(xùn)練中原有的卷積操作,在不影響結(jié)果的條件下可減少計(jì)算量。同時(shí)考慮到量化后CNN模型能充分發(fā)揮邊緣計(jì)算平臺的優(yōu)勢,將同一量化層中的權(quán)重和輸入特征量化為相同的位寬數(shù),可在后續(xù)工作中采用定制乘法器提高資源利用率,降低模型部署難度。

        在CNN模型中,為加快模型收斂速度,防止梯度爆炸,梯度消失和過擬合等問題,許多網(wǎng)絡(luò)設(shè)有BN層。但是這個(gè)網(wǎng)絡(luò)層帶來的額外計(jì)算量使得神經(jīng)網(wǎng)絡(luò)在硬件資源有限的平臺更加難以實(shí)現(xiàn),因此可以通過將BN層與卷積層融合,可減緩硬件資源壓力。

        假設(shè)在某個(gè)卷積層中權(quán)重為W,輸入特征為A,則卷積過程可以表示為

        Yconv=W*A+b

        (13)

        BN層計(jì)算過程可以表示為

        (14)

        μ,σ分別表示為一個(gè)batch內(nèi)的均值和標(biāo)準(zhǔn)差,γ表示縮放參數(shù),β為偏移參數(shù),ε為一個(gè)非常小的常數(shù),設(shè)定為0.001,則卷積層與BN層融合后整個(gè)過程可表示為

        Y=W′*A+b′

        (15)

        在傳統(tǒng)量化訓(xùn)練中常用計(jì)算方法是通過式(4)和式(15)按順序計(jì)算結(jié)果。為進(jìn)一步加快量化訓(xùn)練過程,我們將參數(shù)量化,卷積層與BN層重新整合。將式(4)和式(15)結(jié)合,可得式(16)

        [(Xint-zw)Sx]+b′

        (16)

        由于卷積運(yùn)算為線性運(yùn)算,因此可以將把式(16)可轉(zhuǎn)化為

        Y=(Wint-zw)*(Xint-zx)Sy+b′

        (17)

        在量化訓(xùn)練中,常用層級量化與通道級量化兩種量化粒度,可根據(jù)實(shí)際情況選擇。若量化粒度選為層級量化,則Sw和Sx在每個(gè)量化層中為一組定值,因此在改進(jìn)傳統(tǒng)的量化訓(xùn)練后每個(gè)量化層中Sy只需計(jì)算一次,最后與卷積運(yùn)算后的結(jié)果相乘即可;若量化粒度選為通道級量化,則Sw和Sx在每個(gè)通道內(nèi)為一組定值,在每個(gè)通道內(nèi)計(jì)算一次Sy值即可。另外,若量化方式采用對稱量化,即zw=zx=0,式(17)中卷積運(yùn)算可轉(zhuǎn)化為整型運(yùn)算,結(jié)合目前許多GPU中的Tensor Cores技術(shù)(可支持INT8和INT4等不同的精度模式),可進(jìn)一步提高模型訓(xùn)練速度。

        3 實(shí)驗(yàn)驗(yàn)證

        為了驗(yàn)證本文提出方法的有效性,選取常用對比網(wǎng)絡(luò)Resnet18、Resnet20、Resnet56在cifar-10和cifar-100數(shù)據(jù)集上進(jìn)行量化實(shí)驗(yàn),分別測試3種CNN模型量化后的分類準(zhǔn)確率和位寬。

        實(shí)驗(yàn)環(huán)境采用深度學(xué)習(xí)框架pytorch,在配有NVIDIA Tesla T4 GPU的LINUX系統(tǒng)服務(wù)器中完成模型預(yù)訓(xùn)練和量化實(shí)驗(yàn)過程。在訓(xùn)練全精度模型時(shí)初始學(xué)習(xí)率設(shè)定為0.01,每訓(xùn)練100輪調(diào)整到原來的1/10,量化訓(xùn)練時(shí)學(xué)習(xí)率統(tǒng)一定為10-4,均使用SGD優(yōu)化器調(diào)整模型權(quán)重。

        設(shè)定模型量化后推理準(zhǔn)確率損失小于1%(可根據(jù)實(shí)際需求調(diào)整該設(shè)定值)。在量化實(shí)驗(yàn)前,將全精度模型訓(xùn)練300輪后選取具有最高準(zhǔn)確率的模型作為量化實(shí)驗(yàn)的預(yù)訓(xùn)練模型。每種量化策略訓(xùn)練20輪,保存每種量化策略與對應(yīng)的最高記錄作為實(shí)驗(yàn)結(jié)果。實(shí)驗(yàn)從壓縮比和量化后的CNN模型推理準(zhǔn)確率兩方面進(jìn)行對比分析,通過準(zhǔn)確率的變化和壓縮比衡量量化工作的可行性。

        3.1 cifar-10數(shù)據(jù)集上的量化實(shí)驗(yàn)

        實(shí)驗(yàn)選取cifar-10數(shù)據(jù)集,該數(shù)據(jù)集包含5萬張訓(xùn)練圖片和1萬張測試圖片,共10類物體圖像。在上述設(shè)定條件下進(jìn)行量化實(shí)驗(yàn),測試原模型和量化后的模型分類準(zhǔn)確率以及位寬值。具體實(shí)驗(yàn)結(jié)果見表1。

        表1 cifar-10數(shù)據(jù)集中量化實(shí)驗(yàn)結(jié)果

        Resnet18網(wǎng)絡(luò)預(yù)訓(xùn)練后,推理準(zhǔn)確率為94.55%,將預(yù)訓(xùn)練量化后其推理準(zhǔn)確率仍然可達(dá)到93.81%,權(quán)重和激活值位寬可從32位量化至3.4 MP(MP表示為混合精度量化的平均位寬值),在準(zhǔn)確率僅損失0.74%的情況下,權(quán)重位寬與激活位寬平均壓縮9.41倍,其內(nèi)存占用空間僅為全精度模型的10.63%。表1中另外給出了Resnet18網(wǎng)絡(luò)使用不同量化方法得到權(quán)重和激活的位寬,壓縮比以及模型的準(zhǔn)確率??梢钥闯觯cUNIO方法相比,在具有更高壓縮比的同時(shí),準(zhǔn)確率也高出2.31%。DIFFO方法準(zhǔn)確率高于本文方法0.09%,然而激活位寬仍采用32位浮點(diǎn)數(shù),從后續(xù)部署到移動(dòng)端方面考慮,仍然需要高成本的浮點(diǎn)數(shù)乘法器運(yùn)算和高數(shù)據(jù)帶寬。本文方法權(quán)重與激活平均位寬壓縮至3.4位,只需要低位寬定點(diǎn)數(shù)乘法器和更低的數(shù)據(jù)傳輸量便可實(shí)現(xiàn),因此整體上要更優(yōu)于DIFFO方法。

        另選取量化相關(guān)工作中常用的Resnet20網(wǎng)絡(luò)進(jìn)行量化,量化結(jié)果見表1,量化后權(quán)重與激活平均位寬僅有4.3位,經(jīng)量化訓(xùn)練后模型準(zhǔn)確率恢復(fù)至91.9%,相比于全精度模型僅損失0.99%。相比于PACT方法采用混合精度量化策略,本文方法在量化位寬平均5位時(shí),Resnet20網(wǎng)絡(luò)的分類準(zhǔn)確率要高出此方法0.81%,可以說明本文方法的位寬分配要更加合理。

        選取層數(shù)較深的ResNet56網(wǎng)絡(luò)進(jìn)行實(shí)驗(yàn),量化后權(quán)重和激活位寬可壓縮至平均3.64位,同時(shí)量化后模型準(zhǔn)確率達(dá)到93.35%,相比于全精度模型準(zhǔn)確率損失僅0.48%,所占內(nèi)存空間只需全精度模型的11.4%。相比于QOCN方法,本文方法的選擇的量化策略不僅準(zhǔn)確率提高了0.71%,而且壓縮比也高于該方法。因?yàn)榇朔椒ㄖ缓唵蔚夭捎脙煞N量化位寬,難以得到精細(xì)的量化粒度,而本文采用2~8位位寬選擇,提供多級量化位寬粒度,根據(jù)敏感度值可精細(xì)分配位寬,可兼顧壓縮比與準(zhǔn)確率。

        3.2 cifar-100數(shù)據(jù)集上的量化實(shí)驗(yàn)

        為驗(yàn)證方法的通用性,采用cifar-100數(shù)據(jù)集繼續(xù)測試,該數(shù)據(jù)集共包含5萬張訓(xùn)練圖片和1萬張測試圖片,分類結(jié)果增加至100種,對比測試Resnet18和Resnet20網(wǎng)絡(luò)全精度模型和量化后模型分類準(zhǔn)確率的變化和量化后的位寬數(shù),實(shí)驗(yàn)結(jié)果見表2。

        表2 在cifar-100數(shù)據(jù)上實(shí)驗(yàn)結(jié)果對比

        Resnet18網(wǎng)絡(luò)權(quán)重和激活位寬可量化至平均4.94位,量化后的模型推理準(zhǔn)確率達(dá)到77.0%。為更直觀的與其它方法比較,選取實(shí)驗(yàn)過程中一組權(quán)重和激活平均位寬量化至4位的策略進(jìn)行對比分析,ZeroQ方法同樣是基于量化層敏感度分析實(shí)現(xiàn)混合精度量化,經(jīng)對比可以看出其分類準(zhǔn)確率要遠(yuǎn)低于本文方法,本文方法選用的敏感度指標(biāo)對量化層分配的位寬更加合理,在相同壓縮比下,準(zhǔn)確率高出5.33%。Resnet20網(wǎng)絡(luò)在cifar-100數(shù)據(jù)集上量化后權(quán)重與激活位寬平均有4.48位,模型準(zhǔn)確率恢復(fù)至68.08%。與表中ZeroQ方法相比,可以看出本文方法分配的更少的位寬,準(zhǔn)確率仍然高出2.38%。與Hybird-Net方法相比,雖然壓縮比方面略低,準(zhǔn)確率卻高出該方法4.2%。

        3.3 量化層不同位寬的可視化實(shí)驗(yàn)

        為驗(yàn)證第1.1節(jié)中的結(jié)論,進(jìn)一步說明各量化層中不同位寬帶來的差異性,本文選取不同量化位寬方案訓(xùn)練的Resnet20網(wǎng)絡(luò),在同一位置可視化輸出值并進(jìn)行對比,結(jié)果如圖4所示。

        圖4 不同位寬Resnet20網(wǎng)絡(luò)量化層輸出特征

        圖中每一行代表不同位寬的網(wǎng)絡(luò)在同一量化層輸出結(jié)果,實(shí)驗(yàn)選取了網(wǎng)絡(luò)中3個(gè)不同位置比較??梢钥闯觯疚牟捎没旌暇攘炕瘓D4(c)后的模型,即使在模型不同的位置其輸出特征基本與全精度模型圖4(b)保持一致,因此保證量化后準(zhǔn)確率損失較小。在圖4第一、第二行中可以看到,雖然使用不同位寬值,直至量化至3位圖4(e),模型在該層輸出基本相同,但是在圖4第三行中,從4位模型產(chǎn)生的特征圖4(d)區(qū)別開始變大,說明統(tǒng)一量化為低位寬會(huì)造成模型與全精度模型輸出產(chǎn)生較大差異,易造成模型推理準(zhǔn)確率的下降。

        4 結(jié)束語

        在本文所述的工作中,我們提出了一種CNN模型混合精度量化的方法,利用敏感度信息和聚類方法極大縮小了搜索空間,并且提出一種自適應(yīng)策略搜索方案,可以根據(jù)目前量化策略結(jié)果自行調(diào)整搜索狀態(tài),逐步調(diào)整量化策略。同時(shí)重新整合量化訓(xùn)練過程,減少了傳統(tǒng)量化訓(xùn)練的計(jì)算量,可加快模型訓(xùn)練速度,更高效尋找規(guī)定準(zhǔn)確率下的最優(yōu)量化策略。最后在cifar-10和cifar-100數(shù)據(jù)集上選取不同的CNN模型進(jìn)行測試,與目前各項(xiàng)主流方法對比,綜合各項(xiàng)指標(biāo)來看,均有提升。但是該方法量化后的模型只完成了在PC端的實(shí)驗(yàn)驗(yàn)證,還未實(shí)際部署在邊緣計(jì)算設(shè)備上,同時(shí)這也是下一步的研究方向,結(jié)合FPGA并行計(jì)算和可自由配置乘法器及位寬的特點(diǎn),真正實(shí)現(xiàn)CNN模型在邊緣設(shè)備上的高效應(yīng)用。

        猜你喜歡
        敏感度損失準(zhǔn)確率
        少問一句,損失千金
        胖胖損失了多少元
        乳腺超聲檢查診斷乳腺腫瘤的特異度及準(zhǔn)確率分析
        健康之家(2021年19期)2021-05-23 11:17:39
        不同序列磁共振成像診斷脊柱損傷的臨床準(zhǔn)確率比較探討
        2015—2017 年寧夏各天氣預(yù)報(bào)參考產(chǎn)品質(zhì)量檢驗(yàn)分析
        全體外預(yù)應(yīng)力節(jié)段梁動(dòng)力特性對于接縫的敏感度研究
        玉米抽穗前倒伏怎么辦?怎么減少損失?
        高速公路車牌識別標(biāo)識站準(zhǔn)確率驗(yàn)證法
        電視臺記者新聞敏感度培養(yǎng)策略
        新聞傳播(2018年10期)2018-08-16 02:10:16
        在京韓國留學(xué)生跨文化敏感度實(shí)證研究
        日本饥渴人妻欲求不满| 亚洲AV秘 无套一区二区三区| 丝袜美腿亚洲综合玉足| 日韩精品视频免费网站| 欧美人妻少妇精品久久黑人| 亚洲Va欧美va国产综合| 一区二区三区国产精品| 免费av日韩一区二区| 久久婷婷人人澡人人喊人人爽 | av永远在线免费观看| 99久久99久久久精品蜜桃| 中文字幕无线码| 亚洲一区二区综合色精品| 国产少妇一区二区三区| av网站在线观看入口| 国产精品_国产精品_k频道| 国产精品白浆一区二区免费看| 亚洲国产一区中文字幕| 天天做天天爱夜夜爽毛片毛片| 人与禽交av在线播放| 91精品综合久久久久m3u8| 一区二区高清视频免费在线观看| 丰满少妇a级毛片| 熟女俱乐部五十路二区av| 国产日韩亚洲中文字幕| 日本a级一级淫片免费观看| 日韩国产成人无码av毛片蜜柚| 亚洲色成人网一二三区| 偷拍熟女露出喷水在线91| 国产精品久久久久久| 天天干成人网| 成年人视频在线播放视频| 国产精品女同一区二区免费站| 国产精品久久久久影院| 亚洲a级片在线观看| 精品不卡视频在线网址| 国产超碰人人做人人爽av大片| 双腿张开被9个黑人调教影片| 亚洲av一二三又爽又爽又色| 亚洲综合av一区二区三区蜜桃| 人妻少妇被猛烈进入中文字幕|