《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 深度學習中的卷積神經網絡系統設計及硬件實現
深度學習中的卷積神經網絡系統設計及硬件實現
2018年電子技術應用第5期
王 昆,周 驊
貴州大學 大數據與信息工程學院,貴州 貴陽550025
摘要: 針對目前深度學習中的卷積神經網絡(CNN)在CPU平臺下訓練速度慢、耗時長的問題,采用現場可編程門陣列(FPGA)硬件平臺設計并實現了一種深度卷積神經網絡系統。該系統采用修正線性單元(ReLU)作為特征輸出的激活函數并使用Softmax函數作為輸出分類器。利用流水線技術并針對每一層的特征運算進行了并行處理,從而能夠在1個系統時鐘周期內完成整個CNN中的295次卷積運算。系統最后采用MNIST數據集作為實驗樣本,實驗結果表明,在50 MHz的工作頻率下,FPGA的訓練用時相較于通用CPU的訓練用時提升了8.7倍,經過2 000次迭代后系統識別的準確率為92.42%。
中圖分類號: TP391
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.174161
中文引用格式: 王昆,周驊. 深度學習中的卷積神經網絡系統設計及硬件實現[J].電子技術應用,2018,44(5):56-59.
英文引用格式: Wang Kun,Zhou Hua. System design and hardware realization of convolution neural network system in deep learning[J]. Application of Electronic Technique,2018,44(5):56-59.
System design and hardware realization of convolution neural network system in deep learning
Wang Kun,Zhou Hua
College of Big Data and Information Engineering,Guizhou University,Guiyang 550025,China
Abstract: In this paper, a deep convolution neural network system is designed and implemented by FPGA hardware platform for the problem that the convolution neural network(CNN) in deep learning is slow and time consuming under the CPU platform. The system uses the rectified linear unit(ReLU) as the characteristic output activation function and uses the Softmax function as the output classifier. Assembly line and the parallelism are used for the feature operation of each layer, so that 295 convolution operations in the entire CNN can be completed in one system clock cycle. The system finally uses the MNIST data set as the experimental, and experimental results show that the training time of FPGA work on 50 MHz is 8.7 times higher than that of general-purpose CPU, and the accuracy rate of system identification after 2 000 iterations is 92.42%.
Key words : deep learning;CNN;FPGA;parallel processing

0 引言

    隨著深度學習的廣泛應用與發展[1-2]卷積神經網絡(Convolutional Neural Network,CNN)被使用的場景越來越多,特別是在圖像識別場景中獲得了突破性的發展。CNN擁有多層的神經網絡結構,其自身擁有較強的容錯、學習和并行處理能力[3],是一種擁有多層感知器,局部連接和權值共享的網絡結構[4],從而降低了網絡模型的復雜性和網絡連接權值的個數,因此近幾年來CNN在視頻分析[5-6]、人臉識別[7-8]等領域得到了廣泛的應用。

    雖然CNN的應用廣泛,但其模型參數的訓練往往需要大量的用時,特別是當數據量很大的時候。在現階段實現深度卷積神經網絡主要是使用消費級的通用處理器CPU來實現的[9],但是在CNN的模型結構中,其每一層內的卷積運算都只與當前層的特征運算核相關,與其他層是獨立且不相關的,所以CNN是一種典型的并行運算結構。而現場可編程門陣列(Field-Programmable Gate Array,FPGA)作為一種高度密集型計算加速器件,可通過硬件描述語言完成算法實現,從而利用FPGA的硬件結構特性實現并行運算的加速。

    本文首先對深度學習中的CNN進行了介紹,然后設計一種基于FPGA的CNN系統,通過流水線和并行處理減少了訓練參數所需用時,提升了系統的計算性能。為了驗證設計的功能性,最后采用MINST數據集作為系統驗證。

1 CNN

1.1 CNN模型

    CNN是基于神經認知機模型(Neocognitron Model)的一種深度神經網絡結構,是當前應用最為廣泛的模型結構。CNN在確定模型參數時首先利用前向傳播來獲取和輸出目標的誤差,然后再通過高效的反向傳播訓練算法來實現參數的確定。一般經典的CNN模型是由輸入層、卷積層、池化層、全連接層和分類層組合而構成的,在CNN中卷積層和不同的卷積核進行局部連接,從而產生輸入數據的多個特征輸出,將輸出經過池化層降維后通過全連接層和分類層獲取與輸出目標的誤差,再利用反向傳播算法反復地更新CNN中相鄰層神經元之間的連接權值,縮小與輸出目標的誤差,最終完成整個模型參數的訓練。圖1是一種典型的CNN網絡結構,數據使用不同權重的卷積核Kernel經過卷積運算,將運算的結果經過激活函數ReLU后加上偏置Bias得到多個特征輸出,然后經過池化進行層降維處理后再與全連接層進行全連接,最后經過分類器Softmax函數進行輸出分類。

qrs4-t1.gif

    得到分類結果后,經過與輸出目標進行比較得出誤差,最后使用反向傳播算法得出每一層的殘差,利用殘差計算出新的權值并更新原有的權值。以上整個過程可由式(1)和式(2)表示:

qrs4-gs1-2.gif

1.2 本文CNN模型

    本文所設計的CNN網絡模型結構如圖2所示,該結構有1個輸入層、4個卷積層、2個池化層、1個全連接層、1個采用Softmax函數的分類層和1個輸出層,共8層。

qrs4-t2.gif

    第1層和第8層為輸入層和輸出層。輸入層完成測試圖像數據的輸入獲取,因為采用MNIST數據集,所以輸入數據為784個。輸出層與前一層連接的權重個數為20×10=200,輸出結果為10種。

    第2、3、5、7層均為為卷積層。輸出特征圖的個數分別為5、5、10、20,每層卷積核大小分別為5×5,5×5,5×5,3×3,卷積核移動步長均為1,系統設計采用ReLU作為激活函數,每一層的參數為:

    第2層:權重為5×5×5=125個,偏置為5個;

    第3層:權重為5×5×5×5=625個,偏置為5個;

    第5層:權重為5×5×5×10=1 250個,偏置為10個;

    第7層:權重為3×3×10×20=1 800個,偏置為20個;因此整個卷積層總共有3 840個參數。

    第4、6層為池化層。在池化層也采用卷積運算,卷積核大小為2×2,使用平均池化方法。

2 CNN系統硬件設計

    整個系統硬件根據CNN網絡結構進行設計,利用FPGA硬件電路并行特性將每一層設計為單獨的一個模塊,最后的分類層利用本文所設計的Softmax分類器來完成輸入數據的分類結果,再經過反向傳播算法計算出所需要更新的權值。整體系統設計結構如圖3所示。

qrs4-t3.gif

    系統首先由控制器初始化每一層卷積核Kernel的權重數值索引地址,根據索引地址從RAM模塊當中加載權重數值和偏置值。在前向傳播時將輸入數據通過輸入信號進入數據緩沖區,然后根據每層的輸出特征圖的個數與卷積核完成卷積運算,將運算的結果經過激活函數ReLU和偏置完成當前層的最終輸出特征圖并輸入下一層當中。當經過池化層時進行下采樣運算,從而降低特征圖的維數。最后Softmax分類器根據輸入的數據通過查找ROM中與之對應的數值在經過概率轉換后完成最終的輸出結果。在反向傳播時,根據ROM當中的標簽與輸出結果進行比較得出每一層的殘差保存至RAM當中,計算完成后根據所設定的學習率來完成所有卷積層中卷積核的權值和偏置值的更新,并將更新后的權值由控制器保存到相應的存儲位置,直至所有訓練數據輸入完成。

2.1 卷積層硬件設計

    在圖3的卷積層中,首先將輸入數據進行緩存處理。因為要進行卷積運算,所以必須將輸入的數據根據每個卷積層的卷積核Kernel的大小來進行與之相對應的大小調整。在系統設計中通過使用移位寄存器(Shift Register)來實現對數據的處理,移位寄存器能夠將數據在進行緩存的同時進行移位處理,該器件能夠根據所設定的深度來對數據進行轉換處理,當需要數據進行輸出的時候只需增加抽頭輸出信號即可將數據進行輸出,利用移位寄存器就能夠在1個時鐘周期完成1次卷積運算。在計算出當前輸入數據的特征輸出圖后還需經過激活函數,系統設計使用硬件容易實現的ReLU函數作為激活函數,該函數在輸入值大于0時輸出原輸入值,小于零時輸出0,因此使用比較器即可實現。其卷積運算具體實現過程如圖4所示。

qrs4-t4.gif

    圖4是卷積核大小為3×3時的運算過程,Shift_in是數據輸入,wi為該卷積核權重值,mi為輸出數據緩存寄存器。

2.2 卷積層計算硬件優化

    由于FPGA硬件電路的并行特性,其當中每個模塊的計算是相互獨立互不相關的,并且CNN網絡結構中每層的計算也是相互獨立的,充分體現了整個結構的并行性,特別是卷積運算。因此系統設計中采用了并行設計的方法,設計根據卷積層上一層的輸出特征圖的個數和當前卷積層需要輸出特征圖的個數分別為每個特征圖設計了相應的卷積核組,利用流水線技術和并行運算同時對每個卷積核組完成與之對應的特征抽取,因為系統設計中對池化層的下采樣也采用了卷積運算來完成,所以對于本系統則能夠在1個時鐘周期內完成295次卷積運算,相較于通用CPU運算,本系統設計運算效率得到了顯著提升。系統卷積運算優化設計具體結構如圖5所示。

qrs4-t5.gif

    圖5中xi為特征圖輸入,wij分別是每個卷積核組內不同卷積核的權值,ki為不同的卷積核組,ci為計算結果輸出。

2.3 Softmax分類器

    在經過多層的卷積層和池化層的運算后最終得到當前輸入數據的特征值,將特征值與最后的輸出層進行全連接得出最終的分類結果。系統設計中的分類器使用Softmax函數來完成最后結果的輸出,但Softmax函數是將所有輸入數據通過e指數運算進而得出輸出概率分布,且概率分布的數值范圍是0~1之間的浮點數,而FPGA并不適合進行浮點數運算,并且完成e指數運算所消耗時間較長。因此系統設計中采用查表法來完成e指數運算,通過事先將計算后的指數運算結果存儲至ROM當中,然后根據輸入的特征值作為地址來查找所對應的指數結果。經過軟件平臺測試,特征值經過放大后的取值范圍是-70~80,范圍較大,為了減少ROM的存儲消耗,系統設計中將處理后的特征值計算的數值結果縮小至-30~40之間并進行取整處理,雖然該做法在一定程度上增強或減弱了對應特征值的比重,但降低了查表所需存儲數值ROM的存儲空間,減少了資源的消耗。Softmax分類器的設計電路結構圖如圖6所示。

qrs4-t6.gif

    設計中首先將特征值輸入經過查表得出對應指數運算的結果,同時將結果進行累加運算,最后相除從而計算出分類的結果。

3 系統仿真與分析

    系統設計中的硬件使用Altera公司的Cyclone IV EP4CE115芯片作為試驗平臺,該芯片內部擁有114 480個邏輯單元,6.3 MB的嵌入式存儲器,266個嵌入式18×18乘法器,片內資源豐富,能夠滿足CNN系統硬件設計中所需要的資源,CPU測試平臺使用Core i7四核處理器,主頻為3.4 GHz。

    仿真過程中,整個CNN的學習率設置為0.04,每次輸入批次為30張,迭代次數為2 000次,實驗樣本訓練數據為MNIST數據集28×28像素的灰度圖片60 000張,圖像數值范圍為0~255,測試數據為10 000張,使用均方誤差函數作為損失函數來評價CNN整體系統的性能,最終實驗運行結果如圖7所示。

qrs4-t7.gif

    可以看出在硬件平臺運行和軟件平臺運行均能夠實現對結果的正確分類,在訓練的最開始由于權重值是隨機初始化的,因此誤差較大,隨著不斷地迭代更新權值,誤差逐漸降低,最后其對圖像識別準確率分別為92.42%和96.21%,識別的準確率基本一致。硬件平臺的準確度不如軟件平臺高,是由于在分類器中對Softmax函數的輸入取值做了一定的限定,并在整個訓練過程中進行了數據的放大處理和取整,損失了一定的精度。硬件平臺的訓練時間和軟件平臺訓練所需的時間消耗如表1所示。

qrs4-b1.gif

    硬件平臺整個訓練所用時間相較于軟件平臺運算的時間提升了8.7倍,系統設計主要的硬件資源消耗如表2所示。

qrs4-b2.gif

    系統設計因為中使用了大量的移位寄存器和緩存寄存器來存儲特征值的輸入值,使得寄存器的使用較多,但可以看出實驗所用使用的FPGA能夠滿足本文所設計的CNN網絡結構。

4 結論

    本文設計了一種深度學習中的CNN硬件系統,通過FPGA實現了整個CNN網絡結構,充分利用了FPGA的硬件電路并行特性和流水線技術,對整個卷積層進行了并行運算優化,使得整個系統能夠在1個時鐘周期內同時處理所有卷積層中295次卷積運算,從而使得整個網絡訓練用時相較于通用CPU平臺提升了8.7倍,減少了網絡訓練的所需用時,并且設計了一種通過查表法實現的Softmax分類器來完成對輸出結果的分類。實驗結果表明,該系統設計能夠對MNIST測試數據集完成識別分類且識別準確率經過2 000次迭代后為92.42%,結果基本與相同訓練次數下的CPU平臺一致。

參考文獻

[1] LECUN Y,BENGIO Y,HINTON G.Deep learning[J].Nature,2015,521(7553):436-444.

[2] SZEGEDY C,Liu Wei,Jia Yangqing,et al.Going deeper with convolutions[C].Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition,2015:1-9.

[3] 余子健,馬德,嚴曉浪,等.基于FPGA的卷積神經網絡加速器[J].計算機工程,2017,43(1):109-114,119.

[4] 方睿,劉加賀,薛志輝,等.卷積神經網絡的FPGA并行加速方案設計[J].計算機工程與應用,2015,51(8):32-36.

[5] Zhu Yuke,MOTTAGHI R,KOLVE E,et al.Target-driven visual navigation in indoor scenes using deep reinforcement learning[C].IEEE International Conference on Robotics & Automation,ICRA,2017:3357-3367.

[6] ALAHI A,WILSON J,Li Feifei,et al.Unsupervised camera localization in crowded spaces[C].IEEE International Conference on Robotics & Automation,ICRA,2017:2666-2673.

[7] 蔣雨欣,李松斌,劉鵬,等.基于多特征深度學習的人臉性別識別[J].計算機工程與應用,2016,1(43):226-231.

[8] 李倩玉,蔣建國,齊美彬.基于改進深層網絡的人臉識別算法[J].電子學報,2017(3):619-625.

[9] SZEGEDY C,VANHOUCKE V,IOFFE S,et al.Rethinking the inception architecture for computer vision[J].Computer Science,2015:2818-2826.



作者信息:

王  昆,周  驊

(貴州大學 大數據與信息工程學院,貴州 貴陽550025)

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
美日韩丰满少妇在线观看| 欧美网站在线观看| 亚洲视频欧洲视频| 亚洲人成高清| 欧美怡红院视频| 亚洲综合日韩中文字幕v在线| 亚洲人成绝费网站色www| 在线观看91精品国产麻豆| 国产欧美日韩综合一区在线观看 | 日韩午夜视频在线观看| 亚洲国产三级| 亚洲国产高清高潮精品美女| 欧美一区二区观看视频| 最近中文字幕日韩精品| 亚洲电影第1页| 在线观看亚洲| 亚洲成人资源网| 亚洲福利视频一区| 在线观看亚洲精品| 1000精品久久久久久久久| 亚洲风情在线资源站| 亚洲高清免费在线| 亚洲人成7777| 一本一本久久a久久精品综合妖精| 夜夜爽av福利精品导航| 一级日韩一区在线观看| 亚洲一区二区高清视频| 欧美一区二区三区视频免费| 亚洲高清一二三区| 亚洲精选视频免费看| 99精品国产一区二区青青牛奶| 一区二区精品在线观看| 亚洲欧美日韩国产综合在线| 午夜精品福利在线| 久久偷看各类wc女厕嘘嘘偷窃| 欧美 日韩 国产精品免费观看| 欧美精品七区| 国产精品久久午夜夜伦鲁鲁| 国产日韩欧美不卡在线| 狠狠色丁香久久婷婷综合_中| 在线日本欧美| 亚洲精品国偷自产在线99热| 中国成人黄色视屏| 亚洲专区在线| 性做久久久久久免费观看欧美| aa日韩免费精品视频一| 午夜精品福利电影| 欧美在线一区二区三区| 亚洲福利视频在线| 91久久精品国产91久久| 亚洲人被黑人高潮完整版| 日韩亚洲成人av在线| 宅男噜噜噜66一区二区| 亚洲伊人久久综合| 性8sex亚洲区入口| 久久精品国产91精品亚洲| 久久精品国产亚洲精品| 久久亚洲国产精品日日av夜夜| 久久精品久久综合| 亚洲欧美日韩综合国产aⅴ| 欧美一区综合| 久久婷婷人人澡人人喊人人爽| 欧美fxxxxxx另类| 欧美日韩国产成人在线观看| 国产精品xxx在线观看www| 国产精品久久久久久影视| 国产无一区二区| 亚洲电影免费观看高清| 99精品视频一区| 性欧美精品高清| 亚洲激情影视| 亚洲手机视频| 久久高清免费观看| 久久精品一二三区| 免费看av成人| 欧美午夜一区二区三区免费大片 | 国产日韩欧美制服另类| 亚洲福利免费| 亚洲视频免费看| 午夜国产不卡在线观看视频| 最新精品在线| 亚洲女人小视频在线观看| 久久久无码精品亚洲日韩按摩| 欧美激情免费在线| 国产精品永久入口久久久| 国产一区二区在线观看免费播放 | av成人福利| 久久福利一区| 欧美日本韩国一区二区三区| 国产免费成人在线视频| 亚洲国产天堂久久国产91| 久久国产加勒比精品无码| 亚洲精品日产精品乱码不卡| 亚洲专区国产精品| 老妇喷水一区二区三区| 国产精品美女在线| 亚洲国产精品成人一区二区| 亚洲字幕一区二区| 亚洲精品永久免费| 欧美综合77777色婷婷| 欧美视频中文字幕在线| 亚洲毛片在线免费观看| 亚洲欧美久久| 欧美亚洲免费电影| 欧美日韩激情小视频| 在线观看视频亚洲| 午夜欧美视频| 亚洲图片欧美午夜| 欧美成人国产| 国产综合香蕉五月婷在线| 亚洲欧美日韩综合一区| 亚洲午夜电影| 欧美伦理91i| 精品二区视频| 小处雏高清一区二区三区| 亚洲午夜一区| 欧美黄色免费网站| 韩日成人在线| 午夜精品在线看| 亚洲综合三区| 欧美日韩精品一区二区三区| 伊甸园精品99久久久久久| 欧美一级成年大片在线观看| 亚洲欧美成aⅴ人在线观看| 欧美精品成人一区二区在线观看| 好吊一区二区三区| 午夜免费在线观看精品视频| 午夜精品一区二区三区四区 | 中文精品在线| 这里只有精品视频在线| 欧美高清视频在线观看| 国产视频精品va久久久久久| 亚洲欧美电影在线观看| 亚洲一区二区三区高清不卡| 欧美日韩福利在线观看| 亚洲激情影院| 亚洲精品男同| 免费成人黄色| 在线看日韩欧美| 亚洲高清在线观看| 久久综合激情| 影院欧美亚洲| 亚洲国产专区校园欧美| 免费不卡视频| 亚洲丁香婷深爱综合| 亚洲精品在线观看视频| 欧美r片在线| 亚洲激情二区| 日韩午夜av电影| 欧美日韩在线播放三区| 亚洲电影在线免费观看| 亚洲看片网站| 欧美日韩福利视频| 一本大道久久a久久精品综合 | 亚洲免费在线电影| 欧美精品三级| 亚洲精品一品区二品区三品区| aa成人免费视频| 欧美视频日韩视频| 一级日韩一区在线观看| 亚洲欧美日韩精品久久久久| 国产精品任我爽爆在线播放| 小处雏高清一区二区三区| 久久久久久电影| 依依成人综合视频| 91久久久亚洲精品| 欧美人成在线视频| 一区二区三区国产| 亚洲香蕉成视频在线观看| 国产精品免费网站在线观看| 午夜精品福利一区二区三区av| 久久一二三国产| 亚洲人成网站在线播| 亚洲一区二区三区四区五区午夜| 欧美日韩xxxxx| 亚洲一区二区免费| 久久精品女人天堂| 精品999成人| 在线视频你懂得一区| 国产精品一区视频| 亚洲高清av在线| 欧美另类综合| 亚洲自啪免费| 老司机午夜免费精品视频 | 亚洲精品中文字幕有码专区| 一本色道久久加勒比精品| 欧美日韩精品一区二区| 亚洲欧美国产77777| 久久综合伊人77777麻豆| 亚洲精品男同| 欧美一区二区三区四区在线观看| 国内久久婷婷综合| 欧美一区二区三区另类| 久久躁日日躁aaaaxxxx| 亚洲精品在线一区二区| 欧美在线观看一区二区| 亚洲观看高清完整版在线观看| 亚洲综合色丁香婷婷六月图片| 国产一区二区三区久久精品| 日韩视频第一页|