在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

關于深度學習中的卷積神經網絡系統的設計及硬件實現

電子設計 ? 來源:網絡整理 ? 作者:工程師吳畏 ? 2018-06-20 14:27 ? 次閱讀

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函數進行輸出分類。

關于深度學習中的卷積神經網絡系統的設計及硬件實現

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

關于深度學習中的卷積神經網絡系統的設計及硬件實現

1.2 本文CNN模型

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

關于深度學習中的卷積神經網絡系統的設計及硬件實現

第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所示。

關于深度學習中的卷積神經網絡系統的設計及硬件實現

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

2.1 卷積層硬件設計

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

關于深度學習中的卷積神經網絡系統的設計及硬件實現

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

2.2 卷積層計算硬件優化

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

關于深度學習中的卷積神經網絡系統的設計及硬件實現

圖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所示。

關于深度學習中的卷積神經網絡系統的設計及硬件實現

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

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所示。

關于深度學習中的卷積神經網絡系統的設計及硬件實現

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

關于深度學習中的卷積神經網絡系統的設計及硬件實現

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

關于深度學習中的卷積神經網絡系統的設計及硬件實現

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

4 結論

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1630

    文章

    21802

    瀏覽量

    606400
  • 神經網絡
    +關注

    關注

    42

    文章

    4783

    瀏覽量

    101239
  • cnn
    cnn
    +關注

    關注

    3

    文章

    353

    瀏覽量

    22356
收藏 人收藏

    評論

    相關推薦

    詳解深度學習神經網絡卷積神經網絡的應用

    處理技術也可以通過深度學習來獲得更優異的效果,比如去噪、超分辨率和跟蹤算法等。為了跟上時代的步伐,必須對深度學習神經網絡技術有所
    的頭像 發表于 01-11 10:51 ?2313次閱讀
    詳解<b class='flag-5'>深度</b><b class='flag-5'>學習</b>、<b class='flag-5'>神經網絡</b>與<b class='flag-5'>卷積</b><b class='flag-5'>神經網絡</b>的應用

    基于賽靈思FPGA的卷積神經網絡實現設計

    FPGA 上實現卷積神經網絡 (CNN)。CNN 是一類深度神經網絡,在處理大規模圖像識別任務以及與機器
    發表于 06-19 07:24

    卷積神經網絡深度卷積網絡:實例探究及學習總結

    深度學習工程師-吳恩達》03卷積神經網絡深度卷積網絡
    發表于 05-22 17:15

    卷積神經網絡CNN介紹

    深度學習卷積神經網絡CNN
    發表于 06-14 18:55

    解析深度學習卷積神經網絡原理與視覺實踐

    解析深度學習卷積神經網絡原理與視覺實踐
    發表于 06-14 22:21

    卷積神經網絡模型發展及應用

    network,DBN)[24], 從此拉開了深度學習大幕。隨著深度學習理論的研究和發展,研究人員提 出了一系列卷積
    發表于 08-02 10:39

    卷積神經網絡簡介:什么是機器學習

    抽象人工智能 (AI) 的世界正在迅速發展,人工智能越來越多地支持以前無法實現或非常難以實現的應用程序。本系列文章解釋了卷積神經網絡 (CNN) 及其在 AI
    發表于 02-23 20:11

    深度學習卷積神經網絡層級分解綜述

    隨著深度學習的不斷發展,卷積神經網絡(CNN)在目標檢測與圖像分類受到研究者的廣泛關注。CNN從 Lenet5
    發表于 05-19 16:11 ?5次下載

    什么是神經網絡?什么是卷積神經網絡

    在介紹卷積神經網絡之前,我們先回顧一下神經網絡的基本知識。就目前而言,神經網絡深度學習算法的核
    的頭像 發表于 02-23 09:14 ?3727次閱讀

    卷積神經網絡原理:卷積神經網絡模型和卷積神經網絡算法

    一。其主要應用領域在計算機視覺和自然語言處理,最初是由Yann LeCun等人在20世紀80年代末和90年代初提出的。隨著近年來計算機硬件性能的提升和深度學習技術的發展,CNN在很多
    的頭像 發表于 08-17 16:30 ?1562次閱讀

    卷積神經網絡的介紹 什么是卷積神經網絡算法

    深度學習算法。CNN模型最早被提出是為了處理圖像,其模型結構包含卷積層、池化層和全連接層等關鍵技術,經過多個卷積層和池化層的處理,CNN
    的頭像 發表于 08-21 16:49 ?1966次閱讀

    卷積神經網絡深度神經網絡的優缺點 卷積神經網絡深度神經網絡的區別

    深度神經網絡是一種基于神經網絡的機器學習算法,其主要特點是由多層神經元構成,可以根據數據自動調整神經
    發表于 08-21 17:07 ?4263次閱讀

    深度學習卷積神經網絡的應用

    隨著人工智能技術的飛速發展,深度學習卷積神經網絡(Convolutional Neural Network, CNN)作為其中的重要分支,已經在多個領域取得了顯著的應用成果。從圖像識
    的頭像 發表于 07-02 18:19 ?1061次閱讀

    卷積神經網絡實現原理

    卷積神經網絡(Convolutional Neural Networks,簡稱CNN)是一種深度學習模型,廣泛應用于圖像識別、視頻分析、自然語言處理等領域。本文將詳細介紹
    的頭像 發表于 07-03 10:49 ?674次閱讀

    深度學習卷積神經網絡模型

    深度學習近年來在多個領域取得了顯著的進展,尤其是在圖像識別、語音識別和自然語言處理等方面。卷積神經網絡作為深度
    的頭像 發表于 11-15 14:52 ?411次閱讀
    主站蜘蛛池模板: 日韩毛片高清在线看 | 2022国产情侣真实露脸在线 | 国产欧美在线一区二区三区 | 狠狠色噜噜狠狠狠狠 | 妖精视频永久在线入口 | 国产伦精一区二区三区 | 久久精品夜夜夜夜夜久久 | 人人插人人干 | 亚洲97| 亚洲欲色 | 日本不卡视频免费的 | 黄色三级视频 | 情趣店上班h系列小说 | 久久夜色精品国产亚洲噜噜 | 噜噜噜色噜噜噜久久 | 亚洲国产成人在线 | 这里只有精品在线 | 手机看片1024日韩 | 国产精品va一区二区三区 | 夜性影院| 日本三级特黄 | 香港三级在线视频 | 老司机51精品视频在线观看 | 可以直接看的黄址 | 一区二区三区在线观看视频 | 色www视频永久免费 色www视频永久免费软件 | 国产精品视频网站你懂得 | 新版天堂8在线天堂 | 2019天天操天天干天天透 | 年轻的护士3 | 欧美videosex性欧美成人 | 色欧美在线视频 | 人与牲动交xxxbbb | 日韩欧美理论 | 性生交大片免费一级 | 狠狠插狠狠插 | 人人人人干 | 黄免费网站 | 国产伦精品一区二区三区在线观看 | 狠狠色综合久久婷婷 | 四虎影视免费观看 |