999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于ZYNQ平臺的YOLOv3壓縮和加速

2021-03-18 13:45:02*
計算機應用 2021年3期
關鍵詞:模型

*

(1.西安交通大學電子與信息學部,西安 710049;2.西安交通大學人工智能學院,西安 710049)

0 引言

隨著人工智能和云計算技術的快速發展,物體檢測技術逐漸應用到人們生活的方方面面。例如,車輛檢測在交通運輸和安防[1]、自動駕駛[2]等領域有著廣泛的應用。近年來卷積神經網絡在物體檢測領域取得了許多重大的進展,新的網絡結構不斷涌現,如R-CNN(Region-based Convolutional Neural Network)[3]、Faster-RCNN(Faster Region-based Convolutional Neural Network)[4]、SSD(Single Shot multibox Detection)[5]、YOLO(You Only Look Once)[6]等。這些新型的網絡不斷提升物體檢測的精度,但它們的參數和計算量也在急劇升高。受制于計算、訪存、功耗等諸多因素,通常很難將它們直接應用到車輛和無人機等移動嵌入式環境中。而將圖像上傳到云端進行檢測則需要高速穩定的無線網絡支持,系統的可用性直接受制于通信的質量[7],而現有的網絡環境很難支撐這一方案。因此,神經網絡的參數量和計算量逐漸成為衡量算法性能的重要指標,它們決定了算法能否部署于端側。

為了解決基于神經網絡的物體檢測技術在端設備實際應用中的計算負荷和性能問題,現有方法主要采用兩類思路:一類是從網絡設計開始,采用例如可分離卷積或者組卷積等技術來降低模型的參數,例如曠視的ShuffleNet[8]和Google 提出的MobileNet 系列[9-11];另一類是通過對已有網絡進行模型壓縮,從而降低網絡的參數與計算量。本文屬于第二類,從模型壓縮[12-25]和計算加速[26-33]兩方面入手研究YOLOv3(You Only Look Once v3)[34]在端側設備上的部署。Cheng 等[35]對這兩者進行了綜述,指出模型壓縮的主要手段包括網絡裁剪[12-17]、量化[18-22]和模型蒸餾[23-25]等。網絡裁剪[12-17]通過分辨網絡中各個部分參數的重要程度調整網絡結構,剔除不重要的參數。網絡量化[18-22]從數據表示層面對神經網絡進行壓縮。神經網絡的參數通常只占用浮點數范圍較小的一部分,因此使用浮點數表示神經網絡參數存在很大的冗余。同時與整型運算相比,浮點數運算會消耗更多的硬件資源和計算時鐘。網絡蒸餾[23-25]在預訓的教師模型基礎上使用簡單的學生模型來學習老師模型中的信息,從而減少模型的參數數量。

計算加速[26-33]方面主要結合硬件資源和神經網絡的計算過程來進行模型加速:一方面根據計算的過程,可以適當地使用硬件特有的協處理器和單指令多數據流指令集來增加計算吞吐量[26];另一方面可以結合現場可編程邏輯門陣列(Field Programmable Gate Array,FPGA)[27-29]和專用集成電路(Application Specific Integrated Circuit,ASIC)[30]等硬件資源結合計算過程的數據流設計相適應的計算模塊,提升計算過程的數據吞吐量。

本文從神經網絡壓縮和加速兩個方面同時入手對YOLOv3 網絡[34]在端側的部署進行研究,所提壓縮方法可以推廣到一般具有殘差連接的神經網絡。本文的主要工作有:1)提出了一種針對殘差網絡的模型壓縮方法;2)設計實現了與ZYNQ 平臺相適配的計算流程,實現了計算的加速。本文所提的壓縮方法包括網絡裁剪和量化兩個方面,首先提出了一種針對殘差網絡的裁剪策略,將網絡剪枝分為通道剪枝和殘差鏈剪枝兩個粒度,解決了通道剪枝無法裁剪殘差連接的局限性。實驗結果表明,該方法與通道剪枝相比能夠進一步減少模型的參數和計算量。網絡量化方面,本文引入并改進了一種基于相對熵KL散度(Kullback-Leibler Divergence)[36]的量化方法,能夠在訓練過程中統計模型的參數分布并在訓練過程中計算量化造成的信息損失,從而優化量化區間減少精度損失。實驗表明本文的壓縮方法能夠進一步降低模型量化過程造成的精度損失。

在計算加速方面,本文結合一種現有的FPGA 加速模塊ZynqNet[29]設計并改進了針對Xilinx公司ZYNQ平臺的8 bit卷積加速模塊,通過使用8 bit 整型數據減少了片上存儲和計算資源的消耗;然后,依據算法流程優化了片上緩存結構和流水線,進一步提升了硬件模塊的計算性能;最后,結合Winograd[31]共享卷積計算的中間結果大量減少了計算資源的消耗。實驗結果表明,本文的方案能夠極大地提高了硬件計算卷積操作的性能,實現了比處理器(Central Processing Unit,CPU)和圖形處理器(Graphics Processing Unit,GPU)等設備更高的平均能耗比,單位功耗下的計算能力更強。

1 相關工作

近年來卷積神經網絡[1-6,34]在物體檢測等領域取得了非常好的效果,解決了傳統圖像檢測算法特征處理過程復雜、場景局限性強等問題,逐漸成為解決物體檢測問題的主流方法。研究表明,一些神經網絡通過極少的模型參數也能取得不錯的檢測精度,這表明深度神經網絡普遍存在過量的參數和大量的冗余計算,隨后研究人員開始關注神經網絡的壓縮和冗余計算的裁剪。另一方面,體系結構和硬件設備加工工藝的發展,也使得ASIC、FPGA 等平臺的計算性能不斷提升,如何結合硬件平臺和神經網絡計算過程也是一個重要的研究課題。接下來,將從三個方面簡要綜述本文涉及的技術和方法。

1.1 模型剪枝

在模型剪枝方面,Han 等[13]在2015 年首次提出將網絡的連接性和權重分開訓練,經過多次迭代后逐步裁剪模型尺寸。隨后Li 等[14]在2016 年提出一種針對卷積核的神經網絡剪枝方法,在每個卷積核中通過l1范數度量卷積核對網絡貢獻度,并根據貢獻度對卷積核進行裁剪。針對裁剪過程信息損失大的問題,2017 年He 等[15]提出了一種基于Lasso 回歸的通道稀疏化剪枝策略,通過回歸和優化實現了與直接裁剪相比更低的信息損失。Liu 等[16-17]提出并改進了一種基于稀疏化訓練和通道剪枝的模型裁剪方法,通過在訓練過程中添加稀疏懲罰系數使得最終的模型信息在通道層面更加集中,最后根據批歸一化層的γ參數裁剪通道,在訓練時極大地減少了模型的信息損失和參數冗余。

1.2 模型量化

在模型量化方面,2015 年Han 等[18]提出一種基于共享權值的壓縮方法,通過對訓練好的模型的權重進行聚類,每個類別共享同一個數值,而后使用低比特數據索引權重,減少了參數體積。2016 年Courbariaux 等[19]提出一種參數僅由-1、1 構成的二值神經網絡,直接訓練不可微的量化模型,在簡單的識別任務中取得了不錯的結果。Rastegari 等[20]提出的XNORNet將特征和卷積的權重全部二值化,通過二值邏輯進行快速推理,也獲得了類似的結果。文獻[21]和文獻[22]的工作均提出了一種基于整數的神經網絡量化和訓練方法。其中文獻[21]在網絡訓練中通過浮點數模擬整數量化過程,實現了通用的量化模型訓練方法,解決了量化模型不能直接訓練的問題,在減少模型體積的同時充分利用了成本更低的整數運算。

1.3 計算加速

在卷積運算加速方面,Vasilache 等[30]在2014 年提出了一種通過離散傅里葉變換的卷積加速方法,通過快速傅里葉變換算法將特征圖和權重轉換為頻域表示并利用乘法操作實現卷積,極大地減少了大卷積核計算的計算量。針對小卷積核計算的加速,Lavin等[31]提出一種基于Winograd變換的卷積計算加速方法,通過對特征圖和權重以及輸出做Winograd 變換將卷積轉換為點乘操作,在增加少量加法運算的同時極大地減少了卷積運算的乘法運算,優化了計算的性能。Liu等[32]挖掘特征稀疏性,提出了稀疏Winograd 算法,進一步加速卷積的運算。Ioffe 等[33]提出了批歸一化的折疊方法,在模型推理時將歸一化操作與卷積層融合,減少推理過程不必要的計算。

2 改進的網絡壓縮策略

本章以YOLOv3 網絡[34]為例對殘差神經網絡的壓縮進行研究,并給出針對殘差網絡的壓縮方法。YOLOv3 使用的特征提取網絡是Darknet-53,它由五個串聯的殘差鏈[37]模塊組成,在特征提取的基礎上進行多尺度的網格劃分,結合Anchor機制直接對目標的位置和類別進行回歸預測。本文研究包括網絡裁剪和量化兩個部分。在裁剪方面,本文提出一種針對殘差網路的裁剪策略,相較傳統剪枝進一步減少了YOLOv3網絡的計算量。在網絡量化方面,本文提出了一種基于KL散度的模擬量化策略,能夠在訓練過程中統計參數的分布,并在訓練過程中模擬量化造成的信息損失,從而減少量化過程的精度損失。

2.1 模型剪枝

首先對網絡進行稀疏化訓練,如式(1)所示,在每個卷積層反向傳播過程中添加稀疏化懲罰項,使得訓練過程中稀疏通道不斷增多,稀疏化訓練過程由參數λ控制:

其中:Net 代表YOLOv3 神經網絡;W是網絡的參數;I是輸入的圖像;y是針對該圖像的真實物體標簽;C度量網絡的輸出和真實標簽之間的損失;γ是神經網絡中所有批歸一化層的γ參數;‖ · ‖1對應l1范數。在稀疏化訓練中,由于存在稀疏化懲罰項,訓練過程將會產生大量的稀疏通道,稀疏通道的數值趨近于零,批歸一化中的γ系數決定了該輸出通道對后續計算的重要程度。通過分位數篩選掉γ較小的通道即可完成稀疏化通道剪枝。

如圖1 所示,左側為第i層卷積的輸出通道,批歸一化層經過稀疏化訓練可以得到一組權重,其中權重相對較小的通道可以視為冗余通道。圖中虛線代表對應的特征圖通道將會被裁剪,卷積核中的對應通道以及對應批歸一化參數可以直接從模型參數中移除。

其中:ic,oc分別是輸入、輸出通道的索引;F是高維特征圖,W是卷積神經網絡的參數,這里特指第i到第i+1層的卷積核;μic和分別是針對輸入特征的批歸一化處理的均值和方差;ε2是一個較小的數值,防止產生分母為0的情況;是批歸一化的γ系數,?是卷積操作。

圖1 稀疏化通道裁剪示意圖Fig.1 Schematic diagram of sparse channel pruning

對于帶有殘差連接的神經網絡,由于需要保證殘差連接的結構,殘差連接處的輸入和輸出通道需要保持一致,無法直接進行裁剪。Darknet-53中每個殘差塊由一個1× 1的卷積層和一個3× 3 的卷積層組成。如圖2 所示,1× 1 和3× 3 卷積層之間可以直接進行裁剪,這是通道內的裁剪。如果直接對3× 3 的輸出通道進行裁剪,可能會使得它與圖2 右側殘差連接的通道數不一致,因此無法直接進行。

圖2 殘差連接中的通道剪枝Fig.2 Channel pruning in residual connection

雖然通道裁剪能夠一定程度上減少網絡的冗余參數,但殘差連接中的通道仍然有許多冗余。通過本文提出的殘差鏈剪枝,能夠在通道剪枝的基礎上進一步減少模型的參數量。在殘差網絡中,殘差鏈可以看成是多個殘差塊輸出的累加,因此殘差鏈的輸出通道的權重取決于每一接入殘差塊輸出通道權重的疊加,對殘差連接的剪枝需要對最終各個殘差塊輸出的γ系數求和作為評估殘差鏈通道權重的依據。如圖3所示,本文的裁剪分為通道剪枝和殘差剪枝兩個粒度。

通道剪枝的對象為左側1× 1 卷積的輸出通道和3× 3 卷積的輸入通道。殘差鏈粒度包括右側殘差連接的輸出通道和左側3× 3 卷積的輸出通道。殘差剪枝需要協作各個殘差塊的輸出通道,因此比通道剪枝更為困難。在實際裁剪過程中首先進行通道粒度的裁剪,而后在殘差鏈粒度對每個殘差鏈的通道數進行裁剪。在裁剪過程中,一次裁剪掉大量的通道通常會造成嚴重的精度損失。本文采用多次迭代進行稀疏化剪枝、剪枝后引入精調來保證精度。

圖3 通道剪枝與殘差鏈接剪枝示意圖Fig.3 Schematic diagram of channel pruning and residual connection pruning

2.2 模型量化

模型裁剪從結構上優化網絡的冗余量,網絡量化則從數據表示方面著手,文中將神經網絡參數量化為8 比特的整型。通過神經網絡參數分布可知,相對于浮點數的表示范圍,卷積神經網絡的輸出通常局限在非常小的范圍內,因此神經網絡的數據表示中也存在冗余。通過將浮點數映射到低比特的整數,一方面能夠使用低成本的整數計算單元,同時減少模型計算的訪存總量。對稱量化的計算過程如式(3)所示:

其中Δ為量化步長。對稱量化中如果Δ是根據最大值以及量化位數確定的,會導致式(3)中Δ數值過大,使得更多的浮點數值落入同一個整數值,存在著較大的信息損失。

借助KL 散度可以選擇出合適的Δ值使得最終的信息失真最小。KL散度的定義如下:

其中P和Q分別為量化前后參數的分布。

本文提出一種結合KL 散度[36]和模擬量化的模型量化策略,能夠在模型訓練過程結合KL 散度進行量化,在訓練過程中將量化造成的信息損失考慮在內,減少精度損失。首先,在訓練過程中統計網絡每層參數的l1范數的最大值hmax和參數分布的直方圖h,其中,直方圖將區間[0,hmax]劃分成2 048 等份并統計落在各區間參數的個數。如果在迭代過程中遇到更大的上限hmax,則重新統計直方圖,迭代一定輪數并獲得穩定的直方圖作為P。

假設b是上述量化的中心點,量化需要確定一個區間[0,bj]其中j∈[129,2 048],根據8比特量化的需要,將這個區間劃分成128 個小區間(8 比特量化的區間為[-127,128],為了簡便認為負區間也量化為128 個等級,事實上僅有127 個等級)。

量化區間的選擇帶來了失真,如果j選擇過大,存在量化步長過大帶來KL 散度增大;但是如果j選擇較小,存在丟失l1范數值較大的參數,也會帶來KL 散度的增大。因此,j的選擇應該是一個綜合了步長和區間的最佳值。求解最優的j*使得量化后Q的分布與P分布的KL 散度最小,同時使得精度滿足一定要求。計算出對應的量化區間的上限H128=(hmax×j*)/2 048,式(3)中的步長則可以由這個上限確定。

在訓練過程中,分別對卷積權重的各個輸出通道以及卷積層輸出的激活值使用上述的模擬量化算法,在訓練過程中統計數值分布并在浮點數上模擬量化造成的精度損失。由于使用了KL 散度量化,統計出的H128值通常小于統計值的最大范圍,而且隨著模型的訓練,統計值的范圍也在不斷變化,因此對于超過界限的數值不能限定量化范圍,否則會使模型無法收斂,訓練過程中動態更新這個上界。

3 基于ZYNQ的加速模塊

3.1 硬件平臺環境

ZYNQ 平臺是Xilinx 公司推出的低功耗嵌入式平臺,包括PS(Processing System)和PL(Program Logic)兩個部分。PS 部分主要由處理器構成,通過編寫程序進行控制。PL 部分由可編程邏輯電路組成,通過編寫硬件邏輯實現計算和控制。PS部分和PL 部分通過AXI(Advanced eXtensible Interface)總線進行交互,包括通常用作控制總線的低速總線AXI-GP和用作高速數據傳輸的AXI-HP 總線。AXI-GP 總線通常由PS 端作為主設備控制外設運行,AXI-HP 總線由PL 端作為主設備,可以直接訪問動態隨機存取存儲器(Dynamic Random Access Memory,DRAM)和一致性緩存,在大量數據通過一致性緩存時會極大降低PS端的運行速度。

本文設計的系統結構如圖4所示,右上角為ZYNQ處理平臺,與DDR2(Double Data Rate 2)和處理器相連接;中間部分上面是AXI-HP 高速總線的交叉開關矩陣(Crossbar),負責處理加速模塊的內存數據請求;下面是系統的時鐘和復位信號控制模塊,負責PL 端的時鐘分發和復位,系統PL 端的工作頻率是200 MHz;左側上邊是FPGA 加速模塊,主要使用ZYNQ平臺的DSP48E 和Block RAM 實現計算加速和片上緩存。由低速總線負責卷積參數的輸入和運行狀態的控制。下面是低速總線的Crossbar,負責下發PS端的控制指令和參數。

圖4 系統結構Fig.4 System architecture

3.2 計算模塊設計

計算模塊的設計是在ZynqNet[29]的基礎上修改的,ZynqNet 是在ZC7x045 平臺上實現的基于GoogleNet[38]的手寫數字識別的浮點計算加速模塊。本文在ZynqNet[29]的基礎上刪除與YOLOv3[34]計算無關的全局池化(Global Pooling)、存儲控制(Memory Controller)等模塊、使用8 bit整數作為推理的數據類型并使用AXI-Burst來提高硬件在讀寫DRAM 時的性能。在ZC7x020 平臺上重新設計并優化了卷積計算模塊,優化策略主要參考文獻[39]。

如圖5 所示,本文的設計模塊包括配置面板(Configure Board)、輸入緩存(Inputs Cache)、權重緩存(Weights Cache)、輸出緩存(Outputs Buffer)、處理單元(Processing Element)和后處理(Post-process)等幾個模塊,下面分別對各個模塊的劃分進行介紹。

配置面板:模塊存儲卷積計算的各個參數,包括輸入特征圖的長寬、輸入輸出通道數、卷積核大小、卷積核移動步長、是否使用Leaky RELU[40]激活函數。

輸入緩存:由16 個塊狀隨機存取存儲器(Block Random Access Memory,Block RAM)并聯實現,按照高度、寬度、通道的順序存儲輸入特征圖。16 個Block RAM 中每4 個存儲輸入特征圖的一行,按照輸入特征圖的行編號余4 選擇Block RAM。16個Block RAM 可以同時存儲輸入特征圖的4行。在列上面也是按照特征圖的列編號余4 選取存儲器。在讀取特征圖時允許最多對4 × 4 個端口同時讀取數據。在一個時鐘周期內即可讀取計算所需的特征圖,減少了特征圖讀取的延遲。

權重緩存:由N_PE×3×3 個Block RAM 并聯實現,按照輸入通道、輸出通道、卷積核高度、卷積核寬度的維度次序存儲特征圖,用以緩存處理單元所需要的權重系數。輸出通道按照余N_PE的次序依次映射到各組Block RAM 上。每個處理單元和9 個Block RAM 相關聯,從而允許計算單元在一個周期內讀取所需的權重數據。

輸出緩存:由N_PE個Block RAM 構成,保證每個處理單元計算之前能夠讀取輸出通道的數值并在計算后將累加的結果寫回存儲中。

處理單元:由9 個數字信號處理器(Digital Signal Processor,DSP)組成,負責對輸入的特征圖和權重進行乘加操作,并將最終結果累加到輸出緩存中。由于本文平臺資源的限制,這里選定N_PE=16。

后處理:模塊負責在寫回輸出特征圖通道數據之前對輸出進行批歸一化、激活和重量化操作。在完成后將結果寫回內存。

圖5 加速模塊結構Fig.5 Acceleration module architecture

3.3 算法流程

本文模塊結構根據YOLOv3 卷積層的計算過程實現,算法1 描述了卷積模塊的計算過程。從中可知,特征圖的存儲形式是F[ih,iw,ic],其中ih、iw和ic分別是對特征圖像高度、寬度和通道數的索引;權重的存儲形式是W[ic,oc,fh,fw],其中ic、oc、fh和fw分別是對卷積核輸入通道、輸出通道、高度和寬度方向進行索引。這里重新調整了輸入通道的位置改變了加載數據的順序,同時增強了數據訪問的局部性,在計算過程中充分利用模塊的I/O端口。

算法1 樸素卷積算法。

經過優化,本文實現比從ZynqNet 移植的基準實現有了明顯的性能提升。在驗證算法計算結果正確后,本文結合Winograd算法對模塊結構進行調整,進一步增強硬件性能。

如算法2 所示,矩陣G、B和A分別是權重、輸入和點積結果的基變換矩陣[31]。借助Winograd 變換F(2,3)能夠在增加一些加法運算的同時將乘法操作從9 個減少到4 個。針對現有的設計結構,本文調整了權重緩存R的形狀,使用16 ×N_PE個Block RAM 存儲GRGT變換后的權重。在讀取輸入S后進行BTSB變換,由于硬件資源的限制,將N_PE從16 減小到8,在點乘輸出T后進行ATTA變換,能夠在增加少量加法計算資源同時的節省3/4的輸出緩存大小。

算法2 Winograd F(2,3)卷積算法。

4 實驗與結果分析

本文用KITTI(Karlsruhe Institute of Technology and Toyota Technological Institute at Chicago)[41]數據集中的車輛和行人兩類數據對上述的壓縮算法進行了實驗驗證。訓練數據集中包含了3 700 張大小相近圖片,測試數據集中包含了3 800 張圖片,主要包括行車和道路場景下的車輛、行人等物體的標注信息。圖6 中是數據集中的樣例圖片。在訓練之前首先要按照PASCAL VOC(Pattern Analysis,Statistical modelling,And Computational Learning Visual Object Classes challenge)的標注格式對數據集的標注進行轉換。

1)模型裁剪結果對比。

模型剪枝實驗首先進行稀疏化訓練,訓練使用1E-4的學習率和1E-5的稀疏化懲罰系數,再分別進行通道剪枝和殘差鏈剪枝,最后進行精調。表1 中對不同的裁剪方法進行了對比,由表1 可知,模型裁剪能夠極大地減少模型的計算量,而本文提出的方法能夠進一步地減少模型計算量。這里使用平均精度(Average Precision,AP)度量模型性能。由表1 可知,與直接通道剪枝相比,本文的方法能夠在略微降低精度的情況下進一步減小模型的尺寸和計算量。

圖6 KITTI數據集示例數據Fig.6 KITTI dataset sample

表1 模型裁剪結果對比Tab.1 Comparison of model pruning results

圖7 給出一些通道剪枝+殘差鏈剪枝85%模型對應的檢測結果圖,由圖7 可見,裁剪后的模型能夠較為準確地預測出車輛的大小和位置。

圖7 裁剪后模型的檢測結果Fig.7 Detection results of pruned model

2)模型量化結果對比。

模型量化在Darknet-53 上分別實現了不同的量化方法,并以表1中通道剪枝+殘差鏈剪枝85%為基準進行驗證,實驗結果如表2所示。

表2 模型量化結果對比Tab.2 Comparison of model quantization results

由表2 可以看出,由于存在離群值,使得最大最小值量化過程存在較大的信息損失,精度降低嚴重。結合KL散度量化能夠一定程度上減少信息損失,再結合模擬量化對模型進行微調,能夠有效地減少模型的精度損失。其中,由于使用了批歸一化,激活值的分布關于零點基本對稱,因此使用對稱量化前后的精度損失較小。最后,本文嘗試了使用每通道量化的方式,對每個卷積輸出通道分別進行量化,增加了模型參數數量,但可以進一步減少精度損失。

在表3 中,將本文所提的壓縮算法與經典的YOLOv3 tiny進行對比,這是YOLOv3 提供的一個壓縮版本,實驗使用基本操作數(Basic OPerationS,BOPS)比較卷積操作的計算量,其單位為109(Billion)。本文所提壓縮方法獲得的模型與YOLOv3 tiny 的BOPS 接近,但獲得了超過YOLOv3 tiny 的7 個百分點的性能,同時模型尺寸約為YOLOv3 tiny 的六分之一。此外,相較于其他裁剪與量化方法,本文所提方法在保持高性能的前提下也具有較高的壓縮比,實驗驗證了本文所提壓縮方法的有效性。

表3 不同壓縮算法的模型尺寸、計算量與精度對比Tab.3 Comparison of model size,computational cost and accuracy for different compression algorithms

3)加速模塊性能對比。

對本文涉及的幾個加速模塊的實現進行比較,包括ARM(Advanced RISC Machine)處理器版本的實現、從ZynqNet 移植的基準實現、本文設計和優化的沒有集成Winograd 算法的實現和集成Winograd算法的實現,結果如表4所示。

由表4 可見,在端設備上直接使用ARM 處理器進行推理是不現實的,借助FPGA 進行8比特推理能夠有效提升計算速度,在ZynqNet 的基準實現上,本文的設計和優化能夠提升模塊的平均性能,有力地支持神經網絡的端側推理。表4 中,平均性能通過迭代200 輪進行統計,性能的度量單位是每秒十億計算數(Giga Operations Per Second,GOPS)。

表4 不同計算加速模塊的功耗、資源利用率與性能對比Tab.4 Comparison of power consumption,resource utilization rate and performance for different computation acceleration modules

接下來,本文結合現有的包括CPU、GPU、FPGA 等多個平臺的實現結果[42-43]對本文在ZYNQ 平臺上的計算加速算法進行評估,結果如表5 所示,通過單位功耗實現的操作總數評估各實現的能耗比。本文實現的非Winograd 加速模塊的平均性能與GPU 樣本相近,比FPGA 樣本略高。具有Winograd 的加速方案能夠在無Winograd 加速的基礎上提升一倍多的能耗比;與其他平臺相比,本文集成了Winograd 的方案能夠在更低的功耗下取得較高的計算性能。

表5 不同平臺的性能、功耗以及能耗比對比Tab.5 Comparison of performance,energy consumption and energy consumption ratio on various platforms

5 結語

本文圍繞YOLOv3 網絡在低功耗場景下的應用進行研究,通過模型壓縮與適配端側設備的計算加速實現了網絡在ZYNQ 平臺的部署,達到了較高的能耗比。一方面,本文設計了針對殘差網絡的裁剪方法,通過引入針對殘差鏈的剪枝和按通道的量化實現了以較低的精度損失獲得較高壓縮比的目的。另一方面,本文在ZynqNet 的基礎上設計實現了卷積加速模塊,優化了片上緩存,集成了Winograd 算法,極大地提高了低功耗場景下ZYNQ 平臺的卷積性能。與不同平臺的比較表明,本文研究獲得了較高的能耗比,能夠加速推進YOLOv3以及其他殘差網絡在ZYNQ端側的部署。

關于神經網絡的壓縮與部署,仍有很多值得探索的地方。例如,將本文所提壓縮方案推廣到具有池化等模塊的網絡,探討適用更復雜結構的網絡壓縮方案是未來一個有價值的研究方向。另外,在加速模塊部分,結合Chisel(Constructing hardware in a scala embedded language)等敏捷硬件開發工具,實現更細粒度的硬件結構控制,從而提高硬件資源的利用率、降低平均功耗也是值得考慮的一個研究點。

猜你喜歡
模型
一半模型
一種去中心化的域名服務本地化模型
適用于BDS-3 PPP的隨機模型
提煉模型 突破難點
函數模型及應用
p150Glued在帕金森病模型中的表達及分布
函數模型及應用
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
3D打印中的模型分割與打包
主站蜘蛛池模板: 亚洲AⅤ综合在线欧美一区 | 99精品在线视频观看| 亚洲国产成人超福利久久精品| 日韩毛片在线视频| 欧美激情二区三区| 91精品视频播放| 99ri国产在线| 中文字幕久久亚洲一区| 欧美在线视频不卡第一页| 亚洲va欧美va国产综合下载| 精品国产黑色丝袜高跟鞋| 视频国产精品丝袜第一页| 久久亚洲欧美综合| 精品日韩亚洲欧美高清a| 天堂成人在线视频| 日韩美一区二区| 亚洲无线国产观看| 国产成人无码Av在线播放无广告| 久久精品91麻豆| 少妇露出福利视频| 国产区在线观看视频| 深爱婷婷激情网| 亚洲愉拍一区二区精品| 国产在线观看91精品| 国产精品页| www.99精品视频在线播放| 97成人在线视频| 国产97视频在线| 国产无码精品在线播放| 丁香婷婷激情网| 高清久久精品亚洲日韩Av| 福利一区在线| 中文纯内无码H| 日本欧美一二三区色视频| 久久动漫精品| 国产男女免费视频| 国产91丝袜在线播放动漫 | 久久精品免费看一| 亚洲欧美另类中文字幕| 中文字幕第1页在线播| 蜜桃视频一区| 亚洲性影院| 欧美视频在线第一页| 亚洲一区网站| 99视频精品全国免费品| 最新国产精品第1页| 国产亚洲精品yxsp| 26uuu国产精品视频| 日韩欧美亚洲国产成人综合| 中文字幕亚洲电影| 精品人妻无码中字系列| 伊人91视频| 国产精品xxx| 国产拍揄自揄精品视频网站| 四虎精品黑人视频| 亚洲成年人网| 日本道中文字幕久久一区| 成人福利一区二区视频在线| 免费国产好深啊好涨好硬视频| 浮力影院国产第一页| 欧美亚洲国产日韩电影在线| 欧美性爱精品一区二区三区| 免费看美女毛片| 欧美区一区二区三| 亚洲一区二区在线无码| 久久毛片基地| 亚洲欧美成人在线视频| 日韩大乳视频中文字幕| 亚洲午夜福利在线| 久久精品视频一| 国产玖玖玖精品视频| 欧美精品v日韩精品v国产精品| 国产人在线成免费视频| 韩日午夜在线资源一区二区| 亚洲综合亚洲国产尤物| 她的性爱视频| 亚洲精品高清视频| 1024你懂的国产精品| 久久先锋资源| 国产高清不卡| 国产成人精品18| yy6080理论大片一级久久|