《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于FPGA加速的卷積神經網絡識別系統
基于FPGA加速的卷積神經網絡識別系統
2020年電子技術應用第2期
林志文,林志賢,郭太良,林珊玲
福州大學 物理與信息工程學院,福建 福州350116
摘要: 針對卷積神經網絡(CNN)在通用CPU以及GPU平臺上推斷速度慢、功耗大的問題,采用FPGA平臺設計了并行化的卷積神經網絡推斷系統。通過運算資源重用、并行處理數據和流水線設計,并利用全連接層的稀疏性設計稀疏矩陣乘法器,大大提高運算速度,減少資源的使用。系統測試使用ORL人臉數據庫,實驗結果表明,在100 MHz工作頻率下,模型推斷性能分別是CPU的10.24倍,是GPU的3.08倍,是基準版本的1.56倍,而功率還不到2 W。最終在模型壓縮了4倍的情況下,系統識別準確率為95%。
中圖分類號: TN409;TP391
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.191000
中文引用格式: 林志文,林志賢,郭太良,等. 基于FPGA加速的卷積神經網絡識別系統[J].電子技術應用,2020,46(2):24-27.
英文引用格式: Lin Zhiwen,Lin Zhixian,Guo Tailiang,et al. Recognition system of convolution neural network based on FPGA acceleration[J].Application of Electronic Technique,2020,46(2):24-27.
Recognition system of convolution neural network based on FPGA acceleration
Lin Zhiwen,Lin Zhixian,Guo Tailiang,Lin Shanling
School of Physics and Information Engineering,Fuzhou University,Fuzhou 350116,China
Abstract: A convolutional neural network(CNN) inference system is designed based on the FPGA platform for the problem that the convolutional neural network infers at low speed and it is power consuming on the general CPU and GPU platforms. By computing resource reusing, parallel processing of data and pipeline design, it greatly improved the computing speed, and reduced the use of computing and storage resources by model compression and sparse matrix multipliers using the sparseness of the fully connected layer. The system uses the ORL face database. The experimental results show that the model inference performance is 10.24 times of the CPU, 3.08 times of the GPU and 1.56 times of the benchmark version at the working frequency of 100 MHz, and the power is less than 2 W. When the model is compressed by 4 times, the system identification accuracy is 95%.
Key words : convolutional neural network(CNN);FPGA;face recognition;sparsity

0 引言

    隨著近些年深度學習的迅速發展和廣泛的應用,卷積神經網絡(CNN)[1]已經成為檢測和識別領域最好的方法,它可以自動地從數據集中學習提取特征,而且網絡層數越多,提取的特征越有全局性。通過局部連接和權值共享可以提高模型的泛化能力,大幅度提高了識別分類的精度。并且隨著物聯網的發展,部署嵌入式端的卷積神經網絡要處理大量的數據,這將會消耗大量的資源與能量,而嵌入式設備通常用電池維持工作,頻繁更換電池將會提高成本,因此對于推斷階段的運算加速以及低功耗設計有重要實際意義。

    CNN的不同卷積核的運算之間是相互獨立的,而且全連接層的矩陣乘法不同行之間也是獨立的,因此神經網絡的推斷在CPU平臺上串行計算的方式是非常低效的。GPU可以通過流處理器實現一定的并行性,但是缺乏對于網絡并行結構的深度探索,不是最優的方案。而基于FPGA的神經網絡可以更好地實現網絡并行計算與資源復用,因此本文采用FPGA加速卷積神經網絡運算。

    此前已有一些基于FPGA的卷積神經網絡加速器,WANG D設計了流水線卷積計算內核[2];宋宇鯤等人針對激活函數進行設計優化[3];王昆等人通過ARM+FPGA軟硬件協同設計的異構系統加速神經網絡[4];張榜通過雙緩沖技術與流水線技術對卷積優化[5]。本文針對卷積神經網絡的并行性以及數據與權值的稀疏性,對卷積層和全連接層進行優化,根據卷積核的獨立性設計單指令多數據(Single Instruction Multiple Data,SIMD)的卷積與流水線結構,提高計算速度與資源效率,利用全連接層數據極大的稀疏性,設計稀疏矩陣乘法器減少計算冗余,然后對模型參數定點優化,最后將實驗結果與CPU、GPU平臺以及基準設計[5]進行比較分析。

1 CNN模型與網絡參數

1.1 CNN模型

    CNN是基于多層感知機的神經網絡結構,典型的CNN模型由輸入層、卷積層、全連接層、輸出層和分類層組成,如圖1所示。由輸入層讀取圖像數據,由卷積層通過多個卷積核分別和輸入圖卷積生成多個特征圖,再由池化層降維提取特征圖信息。經過幾個卷積層后,再將特征圖展開成向量,輸入給全連接層,經過全連接層與輸出層的矩陣運算得到輸出,然后再通過Softmax分類層得到分類概率輸出。

rgzn1-t1.gif

    本文CNN模型結構如圖2所示,該結構包含兩個卷積層、兩個池化層、一個全連接層,一個輸出層、一個使用Softmax的分類層,其中激活函數不算作一層,共7層的網絡結構。其中兩個卷積層的輸出特征圖個數分別為16、32,卷積核大小為3×3,移動步長為1,輸出尺寸與輸入相同,系統使用線性修正單元(Rectified Linear Units,ReLU)作為激活函數。全連接層和輸出層分別有1 024和40個神經元。由圖2計算得權值與偏置的數量,本文模型共4 765 416個參數,其中全連接層占了99%的參數。

rgzn1-t2.gif

    由于分類層是用輸出層的值通過Softmax函數求得每個分類的概率,而Softmax函數的運算消耗大量的運算資源,而且對結果沒有影響,這是不必要的運算開銷,因此用輸出值來判別即可。

1.2 CNN網絡參數

    根據所選的網絡結構,本文使用TensorFlow框架搭建模型,學習率設置為0.000 1,使用自適應學習率優化算法Adam加速模型收斂,訓練選擇ReLU激活函數增加模型參數的稀疏性,使用交叉熵作為損失函數,加入L2正則化項減小過擬合。訓練了50輪后,模型在ORL人臉數據庫的正確率達到95%,滿足實際應用需要。

    神經網絡模型推斷降低一定的精度不會影響準確率,而且在FPGA上定點數比起浮點數的計算更有效率,所以將模型參數由32 bit浮點數量化為16 bit定點數,由深度壓縮[6]中的方法,將16 bit的定點數權值再用8 bit的索引表示,索引表的值共28=256個,然后通過反向傳播算法[7]更新索引表后,將索引和索引表存在外部存儲器中。

2 CNN系統硬件設計

    本系統針對CNN模型結構以及數據與參數的特點進行設計和優化,卷積同一層內不同特征圖的計算有天然的并行性,不同層之間因為不是獨立的,無法同時進行計算,而全連接層和輸出層都可以使用卷積層的PE來完成乘法運算。系統設計如圖3所示。

rgzn1-t3.gif

    首先通過控制器從外部存儲器DDR3中讀取圖像數據到輸入緩沖區,輸入緩沖區通過移位寄存器設計,通過固定窗口讀取數據。讀取權值索引到權值緩沖區,然后由索引讀取權值輸入給卷積的處理單元(Processing Element,PE),經過每層的卷積后加上偏置,用ReLU函數激活,再經過池化操作降維,然后特征圖經過非零檢測模塊統計稀疏性,讀取對應的非零神經元的權值,然后由稀疏矩陣乘法器(Sparse Matrix-Vector Multiplication,SPMV)完成矩陣乘法,加上偏置后輸出給輸出層。輸出層復用卷積層的PE完成矩陣乘法,然后遍歷輸出值求出最大值對應的神經元序號即為預測值。

2.1 卷積層硬件設計優化

    如圖4所示,卷積層采用移位寄存器作為輸入緩存,本文卷積層的卷積核尺寸為3×3,每次讀取9個權值,使用9個定點小數乘法器,然后使用4層加法樹結構將結果與偏置相加。然后通過ReLU函數激活,該函數表達式為y=max(0,x),因此只要判斷輸入數據的符號位即可,使用一個數據選擇器即可完成運算,消耗一個時鐘。第一層卷積的不同卷積核是獨立計算的,所以使用16個PE同時計算,然后通過流水線技術,可以在一個時鐘周期內產生16個卷積輸出,輸出數據的延遲包括讀取數據延遲和加法樹的延遲。

rgzn1-t4.gif

2.2 池化層設計優化

    池化層用于對輸入特征圖降低維度和提取信息,池化分為平均值池化和最大值池化,本文使用最大值池化,池化尺寸為2×2,步長為2。池化層使用比較器得到最大值,經過兩次比較得到結果。經研究發現,池化操作不影響卷積操作,因此設計了池化與卷積的并行計算,如圖5所示。并行操作節省了池化運算的時間,加快了網絡的計算速度。

rgzn1-t5.gif

2.3 全連接層與輸出層的設計與優化

2.3.1 全連接層

    全連接層將所有輸入特征圖和輸出向量相連接,每個神經元的值由卷積層特征圖加權求和得到。本文多次實驗發現全連接層有大量為零的神經元,如圖6所示。因此可以利用神經元的稀疏性減少乘法的操作,設計如圖7所示稀疏矩陣乘法器。首先通過非零元檢測模塊,得到不為零的神經元,然后復用卷積層的PE來計算非零神經元與權值的乘加操作。這樣可以重復利用運算資源,并大大降低運算的時間復雜度,提高運算速度。

rgzn1-t6.gif

rgzn1-t7.gif

2.3.2 輸出層

    輸出層對全連接層神經元做矩陣運算,然后通過Softmax層得到所有分類的概率。但是由于Softmax函數含有指數運算,需要消耗大量運算資源和時間,而且對結果沒有影響,因此將Softmax層移除,直接使用輸出層值的大小來分類。本文多次實驗發現輸出層沒有稀疏性,大部分神經元不為零,輸出層的計算復用SPMV的第二個部分進行計算,由PE與串行加法器組成,分別計算輸出層的40個分類的值,40個運算單元共用一路數據輸入,采用滑動窗口讀取數據,多路PE同時計算,由串行加法器輸出結果。最后遍歷求得輸出值最大值,并輸出分類結果。

3 數據量化與模型壓縮

    本文模型使用了兩個卷積層、一個全連接層、一個輸出層的結構,使用參數量由前文所述有476萬參數,而全連接層又占了99%的參數,因此主要針對全連接層進行數據壓縮。對于所有層的參數進行數據量化,從原本模型64 bit浮點數量化為16 bit定點數,然后用8 bit的索引,共256個共享的權值,然后通過反向傳播算法[7]修正原始權值與共享權值的差值。壓縮率公式如下: 

    rgzn1-gs1.gif

其中,n為參數量,b為量化的比特數,k為b bit能表示的類數(256類)。式(1)代入數據求得壓縮率大約為4倍。

4 實驗結果

    系統設計使用Xilinx公司的ZYNQ-7000 xc7z020clg400-1芯片作為實驗平臺,該芯片內部有85 000個邏輯單元、4.9 MB的Block RAM、220個DSP48單元、1 GB片外DRAM,滿足本系統所需。CPU平臺使用Core i5 9400f,主頻為2.9 GHz,GPU平臺使用GTX 1060,GPU主頻為1.5 GHz,顯存帶寬為160 GB/s。將實驗結果與CPU、GPU平臺以及基準設計[5]對比,資源使用情況如表1所示,實驗結果如表2所示。

rgzn1-b1.gif

rgzn1-b2.gif

    本文硬件平臺的工作頻率為100 MHz,識別每張圖片時間為0.27 ms,功耗為1.95 W,性能達到了27.74 GOPS/s,分別是CPU、GPU平臺的10.24倍、3.08倍,以及基準設計的1.56倍,能效比優于CPU、GPU平臺以及基準設計[5]。在數據量化為16 bit定點數之后,識別率達到95%,沒有造成精度損失。

5 結論

    本文設計了一種基于FPGA的卷積神經網絡加速系統。首先使用ORL人臉數據庫,在卷積神經網絡模型LeNet-5上訓練,然后用短定點數對神經網絡進行量化,再使用索引與索引表的方式進一步壓縮模型的全連接層,最終壓縮率達到了4倍。同時,從并行結構設計、流水線技術、時序合并等方式增加系統并行性,通過對模型稀疏性的利用,極大地加速了模型運算。本文使用的CNN模型壓縮方法和利用稀疏性加速的方法理論上也適用于其他的硬件平臺,在嵌入式終端部署更具有優勢。在與CPU、GPU平臺以及相關文獻的設計的對比分析后,本文設計在性能和能耗比上都優于此前的方案。

參考文獻

[1] KRIZHEVSKY A,SUTSKEVER I,HINTON G.ImageNet classification with deep convolutional neural networks[C].NIPS. Curran Associates Inc.,2012.

[2] WANG D,XU K,JIANG D.PipeCNN:an OpenCL-based open-source FPGA accelerator for convolution neural networks[C].2017 International Conference on Field Programmable Technology(ICFPT).IEEE,2017.

[3] 宋宇鯤,高曉航,張多利,等.Sigmoid函數的分段非線性擬合法及其FPGA實現[J].電子技術應用,2017,43(8):49-51.

[4] 王昆,周驊.基于深度學習的實時識別硬件系統框架設計[J].電子技術應用,2018,44(10):11-14.

[5] 張榜,來金梅.一種基于FPGA的卷積神經網絡加速器的設計與實現[J].復旦學報(自然科學版),2018,57(2):236-242.

[6] HAN S,MAO H,DALLY W J.Deep compression:compressing deep neural networks with pruning, trained quantization and Huffman coding[J].Fiber,2015,56(4):3-7.

[7] CUN LE Y,BOSER B,DENKER J S,et al.Handwritten digit recognition with a back-propagation network[J].Advances in Neural Information Processing Systems,1997,2(2):396-404.



作者信息:

林志文,林志賢,郭太良,林珊玲

(福州大學 物理與信息工程學院,福建 福州350116)

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美劲爆第一页| 国产欧美日韩另类一区| 欧美一区二区三区四区在线观看 | 99re视频这里只有精品| 亚洲激情午夜| 亚洲国产天堂久久国产91| 黄色欧美日韩| 国模私拍一区二区三区| 国产午夜精品全部视频在线播放| 国产精品午夜电影| 国产精品视频一区二区三区| 国产精品久久97| 国产精品久久久久久久久久免费看| 欧美午夜电影在线观看| 欧美视频亚洲视频| 国产精品s色| 欧美色大人视频| 欧美色综合网| 国产精品国产精品国产专区不蜜| 国产精品精品视频| 国产精品亚洲一区| 国产视频一区三区| 精品99一区二区三区| 在线精品观看| 亚洲欧洲综合另类| 一区二区三区www| 亚洲深夜福利网站| 亚洲欧美乱综合| 欧美在现视频| 亚洲国产欧美一区| 日韩视频中午一区| 一区二区三区成人| 香蕉尹人综合在线观看| 久久精品1区| 男人的天堂亚洲| 欧美精品一区二区三区在线播放| 欧美午夜精品电影| 国产欧美一区二区视频| 国产一级精品aaaaa看| 亚洲国产cao| 在线视频精品| 欧美一区二区三区视频| 亚洲清纯自拍| 亚洲尤物在线| 久久精品国产综合精品| 老司机午夜精品视频在线观看| 欧美激情黄色片| 国产精品久久久久久久久久免费看| 国产欧美日本| 亚洲第一在线视频| 99精品视频免费全部在线| 亚洲欧美日韩精品一区二区| 亚洲国产成人av| 亚洲视屏一区| 久久久亚洲精品一区二区三区| 欧美激情精品久久久久久免费印度| 国产精品成人免费视频| 狠狠久久五月精品中文字幕| 亚洲精品人人| 午夜国产欧美理论在线播放| 亚洲人成77777在线观看网| 亚洲一区在线播放| 久久婷婷综合激情| 国产精品国产a级| 在线精品视频免费观看| 宅男精品导航| 91久久嫩草影院一区二区| 亚洲特级毛片| 麻豆精品一区二区av白丝在线| 欧美日韩亚洲综合在线| 国产最新精品精品你懂的| 99国产精品视频免费观看| 欧美在线视频免费观看| 亚洲小说欧美另类社区| 蜜月aⅴ免费一区二区三区| 国产精品草莓在线免费观看| 在线播放豆国产99亚洲| 亚洲男同1069视频| 日韩一级网站| 老牛嫩草一区二区三区日本| 国产精品久久午夜| 亚洲人成高清| 亚洲电影中文字幕| 性欧美8khd高清极品| 欧美日韩国产123区| 狠狠入ady亚洲精品| 亚洲一区日本| 夜夜嗨av一区二区三区四季av | 欧美美女操人视频| 国内精品久久久久久久果冻传媒 | 在线免费观看日本一区| 午夜精品福利在线| 亚洲视频大全| 欧美激情精品久久久久久免费印度| 国模私拍一区二区三区| 亚洲一区二区三区四区五区午夜| 99精品国产在热久久下载| 美国成人直播| 国产一区二区三区高清在线观看 | 欧美另类综合| 1204国产成人精品视频| 欧美一区二区三区免费视| 亚洲欧美日韩国产综合在线| 欧美精品一区二区三区蜜桃| 在线观看三级视频欧美| 久久成人精品一区二区三区| 欧美在线播放视频| 国产精品美腿一区在线看| 日韩一级裸体免费视频| 亚洲另类一区二区| 美女露胸一区二区三区| 国内精品久久久久伊人av| 午夜电影亚洲| 欧美在线观看网站| 国产免费观看久久黄| 亚洲性图久久| 亚洲欧美日韩直播| 国产精品人人爽人人做我的可爱| 一本色道久久88综合亚洲精品ⅰ| 99精品久久久| 欧美日韩精品一区二区| 亚洲日本欧美日韩高观看| 日韩视频在线你懂得| 欧美理论在线| 99日韩精品| 亚洲自拍另类| 国产麻豆午夜三级精品| 午夜在线播放视频欧美| 久久久精品国产一区二区三区| 国产亚洲美州欧州综合国| 午夜欧美大尺度福利影院在线看| 欧美一区国产一区| 国产欧美日韩在线播放| 欧美一区二区三区在线观看视频| 久久国产手机看片| 伊人久久久大香线蕉综合直播| 亚洲国产婷婷综合在线精品| 免费久久精品视频| 亚洲三级电影全部在线观看高清| av成人动漫| 国产精品v欧美精品v日本精品动漫| 在线亚洲欧美视频| 欧美在线观看日本一区| 狠狠v欧美v日韩v亚洲ⅴ| 亚洲福利视频在线| 欧美黄在线观看| 在线亚洲免费| 久久国产色av| 亚洲国产成人午夜在线一区| 一区二区三区四区五区在线| 国产精品视频成人| 久久丁香综合五月国产三级网站| 蜜臀99久久精品久久久久久软件| 亚洲国内自拍| 亚洲香蕉伊综合在人在线视看| 国产欧美一区二区三区在线老狼 | 国产精品国产三级国产普通话99| 午夜精品国产精品大乳美女| 久久中文欧美| 99ri日韩精品视频| 欧美亚洲三区| 在线观看视频一区二区| 亚洲视频在线观看网站| 国产欧美日韩在线| 91久久在线播放| 欧美日韩精品免费观看| 亚洲欧美一区二区三区在线| 欧美成人精品福利| 亚洲视频综合在线| 久久综合网色—综合色88| 99国产精品视频免费观看| 久久精品日韩欧美| 亚洲精品色图| 久久精品视频99| 亚洲人成人一区二区在线观看| 欧美亚洲一区| 亚洲大胆人体视频| 午夜国产精品视频免费体验区| 伊人久久男人天堂| 亚洲午夜精品在线| 一区二区视频免费完整版观看| 亚洲一级一区| 尤妮丝一区二区裸体视频| 亚洲欧美日韩国产| 亚洲电影有码| 欧美中文字幕在线| 99精品久久| 欧美 日韩 国产 一区| 亚洲欧美大片| 欧美日韩国产首页在线观看| 久久精品99| 国产免费成人av| 日韩一级大片在线| 精久久久久久久久久久| 性色av一区二区三区红粉影视| 亚洲精品午夜| 嫩草成人www欧美| 欧美一级电影久久| 国产精品久久久久三级| 亚洲精品综合精品自拍|