《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 深度學習中的卷積神經網絡系統設計及硬件實現
深度學習中的卷積神經網絡系統設計及硬件實現
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亚洲国产精品_日韩亚洲一区二区
亚洲一区二区在线| 麻豆视频一区二区| 久久丁香综合五月国产三级网站| 日韩午夜在线视频| 亚洲国产欧美一区二区三区丁香婷| 国产女主播在线一区二区| 欧美私人网站| 欧美日韩国产首页在线观看| 欧美国产第二页| 裸体素人女欧美日韩| 久久成人一区| 小黄鸭视频精品导航| 亚洲视频第一页| 国产精品99久久久久久有的能看| 日韩一级片网址| 99国产精品久久久| 99精品国产福利在线观看免费| 亚洲精品偷拍| 日韩一级裸体免费视频| 亚洲精品日韩久久| 亚洲欧洲综合另类| 亚洲精品乱码久久久久久日本蜜臀| 最近中文字幕日韩精品 | 亚洲女人天堂成人av在线| 一区二区三区**美女毛片| 一区二区三区久久| 亚洲一区精彩视频| 亚洲欧美日韩高清| 欧美在线视频播放| 久久久久久久综合狠狠综合| 久久亚洲综合色| 欧美成人午夜激情| 欧美日韩在线亚洲一区蜜芽| 欧美三级网址| 国产欧美精品一区二区三区介绍 | 尤物网精品视频| 亚洲黄色三级| 一区二区日韩免费看| 亚洲制服少妇| 久久国产视频网站| 亚洲人成久久| 中文欧美字幕免费| 欧美一区二区私人影院日本| 久久香蕉精品| 欧美区高清在线| 国产精品wwwwww| 国产视频在线观看一区二区| 一区二区亚洲精品国产| 亚洲看片网站| 亚洲中无吗在线| 亚洲成人直播| 99精品国产高清一区二区| 亚洲免费视频一区二区| 久久精品国产v日韩v亚洲| 米奇777超碰欧美日韩亚洲| 欧美区日韩区| 国产婷婷一区二区| 亚洲人成小说网站色在线 | 亚洲视频一区二区| 欧美一区二区三区喷汁尤物| 亚洲国产小视频在线观看| 亚洲视频久久| 久久夜精品va视频免费观看| 欧美人妖在线观看| 国产欧美日韩在线视频| 91久久精品一区二区三区| 亚洲视频日本| 91久久中文| 午夜精品久久久久久久久| 麻豆av一区二区三区| 欧美午夜宅男影院| 在线日本欧美| 亚洲影视九九影院在线观看| 亚洲精品网站在线播放gif| 欧美一区二区三区视频| 欧美精品手机在线| 国产真实久久| 亚洲视频高清| 亚洲精品综合精品自拍| 欧美理论在线播放| 国产日韩精品一区二区三区| 亚洲国产视频一区| 亚洲欧美成人一区二区三区| 亚洲精华国产欧美| 欧美在线国产| 欧美日韩精品一区二区在线播放 | 亚洲风情在线资源站| 亚洲一区二区网站| 亚洲欧洲精品一区| 欧美一区二区三区四区在线观看地址| 欧美久色视频| 一区视频在线看| 午夜精品久久久久久久久久久久久| 亚洲精品社区| 久久视频在线看| 国产欧美日韩综合精品二区| 日韩系列在线| 日韩亚洲欧美一区二区三区| 久久亚洲春色中文字幕久久久| 国产精品福利网| 亚洲精品日韩精品| 亚洲精品韩国| 久久九九免费视频| 国产精品免费网站| 一区二区三区 在线观看视| 亚洲看片网站| 乱码第一页成人| 国产视频一区在线观看一区免费| 99热在线精品观看| 日韩午夜在线视频| 欧美大片在线看| 亚洲福利在线看| 亚洲欧洲日本mm| 美女主播视频一区| 在线观看视频免费一区二区三区| 欧美亚洲视频一区二区| 欧美亚洲一区在线| 国产精品久久| 一区二区三区高清在线| 亚洲一区3d动漫同人无遮挡| 欧美日韩国产色综合一二三四 | 裸体一区二区| 狠狠操狠狠色综合网| 欧美一区午夜精品| 久久精品日产第一区二区| 国产乱码精品1区2区3区| 亚洲一区二区三区激情| 亚洲视频一区二区在线观看 | 久久精品视频导航| 国产色爱av资源综合区| 午夜精品福利在线观看| 午夜亚洲福利在线老司机| 国产精品家教| 亚洲欧美一区二区精品久久久| 欧美制服丝袜第一页| 国模精品娜娜一二三区| 亚洲电影毛片| 欧美大尺度在线观看| 亚洲激情欧美| 中文亚洲字幕| 国产精品久久久999| 亚洲欧美在线播放| 久久精品九九| 红杏aⅴ成人免费视频| 亚洲国产天堂久久综合网| 欧美极品欧美精品欧美视频| 亚洲人体影院| 亚洲一区二区黄| 国产精品亚洲综合天堂夜夜| 欧美一区二区三区四区高清| 久久影视三级福利片| 在线精品国产欧美| 一本大道久久a久久综合婷婷| 欧美日韩在线看| 午夜在线一区二区| 另类欧美日韩国产在线| 亚洲精品美女在线观看| 亚洲欧美日韩在线不卡| 国产亚洲欧洲一区高清在线观看| 亚洲国产精品第一区二区三区| 欧美日韩国产成人在线观看| 亚洲免费视频观看| 免费日韩成人| 中日韩美女免费视频网站在线观看| 先锋影音一区二区三区| 伊人久久亚洲美女图片| 一本大道久久精品懂色aⅴ| 国产精品永久免费视频| 亚洲黄色尤物视频| 国产精品va在线播放我和闺蜜| 欧美亚洲视频在线观看| 欧美国产日韩在线观看| 一区二区三区国产在线| 久久久久久久久综合| 亚洲日本黄色| 久久精品日产第一区二区三区| 亚洲人成人一区二区在线观看 | 欧美一区二区网站| 亚洲国产一区二区a毛片| 亚洲在线成人| 一区福利视频| 亚洲伊人伊色伊影伊综合网| 国产在线播精品第三| 一区二区三区日韩欧美精品| 国产一区二区三区高清| 一区二区三区久久久| 国产自产2019最新不卡| 亚洲午夜精品国产| 黄页网站一区| 亚洲欧美综合国产精品一区| 亚洲成色精品| 欧美一区二区啪啪| 亚洲欧洲一区二区天堂久久| 欧美中文字幕在线| 999在线观看精品免费不卡网站| 久久久91精品国产| 在线性视频日韩欧美| 美女亚洲精品| 欧美一区二区精品| 国产精品二区在线|