两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

基于擬牛頓法在線訓(xùn)練神經(jīng)網(wǎng)絡(luò)的FPGA系統(tǒng)及實(shí)現(xiàn)方法與流程

文檔序號:12120395閱讀:434來源:國知局
基于擬牛頓法在線訓(xùn)練神經(jīng)網(wǎng)絡(luò)的FPGA系統(tǒng)及實(shí)現(xiàn)方法與流程

本發(fā)明涉及FPGA的加速設(shè)計(jì)領(lǐng)域,具體涉及一種基于擬牛頓法在線訓(xùn)練神經(jīng)網(wǎng)絡(luò)的FPGA系統(tǒng)及實(shí)現(xiàn)方法。



背景技術(shù):

神經(jīng)網(wǎng)絡(luò)是一種信息處理系統(tǒng),其具有從一組數(shù)據(jù)中學(xué)習(xí)任意輸入輸出關(guān)系的能力。訓(xùn)練是確立神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的關(guān)鍵一步。傳統(tǒng)的離線訓(xùn)練方式存在以下問題:1)如果樣本數(shù)據(jù)是時變的,則無法準(zhǔn)確捕捉輸入輸出間關(guān)系。2)如果對全部樣本進(jìn)行訓(xùn)練,則訓(xùn)練速度遲緩并且可能陷入局部最優(yōu)(如文獻(xiàn)[1])。因此近年來神經(jīng)網(wǎng)絡(luò)與在線訓(xùn)練方式結(jié)合,已在信號處理、語音識別、序列預(yù)測(如文獻(xiàn)[2])等領(lǐng)域獲得了廣泛的應(yīng)用。

目前,神經(jīng)網(wǎng)絡(luò)的在線訓(xùn)練主要在軟件平臺實(shí)現(xiàn)。但軟件實(shí)現(xiàn)方法速度慢且并行度低,從而無法滿足神經(jīng)網(wǎng)絡(luò)在線訓(xùn)練的要求,導(dǎo)致理論研究與實(shí)際應(yīng)用相脫節(jié)(如文獻(xiàn)[3])。除此之外,軟件實(shí)現(xiàn)需要龐大的計(jì)算機(jī)作支持,所以不適合嵌入式場合。所以,必須尋求一種硬件實(shí)現(xiàn)的方法,提高處理速度。

GPU是廣泛認(rèn)可的可選擇的加速器之一,然而它的高功耗是嵌入式應(yīng)用的致命弱點(diǎn)(如文獻(xiàn)[4])。而FPGA器件具有可重配置、高并行度、設(shè)計(jì)靈活(相對于ASIC)、能耗低(相對于GPU)的特性(如文獻(xiàn)[5]),更適宜實(shí)現(xiàn)應(yīng)用于嵌入式場合的神經(jīng)網(wǎng)絡(luò)。目前已有一些基于FPGA實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)的研究。如文獻(xiàn)[6],基于FPGA實(shí)現(xiàn)遞歸神經(jīng)網(wǎng)絡(luò)(RNN)算法變體的優(yōu)化和加速,并用于分析服務(wù)器上的語言模式分類任務(wù)。如文獻(xiàn)[7],基于FPGA實(shí)現(xiàn)了多層感知神經(jīng)網(wǎng)絡(luò)(MLP-NN)的加速,其采用簡單的反向傳播學(xué)習(xí)算法。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明的目的在于克服上述現(xiàn)有技術(shù)的不足,從神經(jīng)網(wǎng)絡(luò)的訓(xùn)練方法—擬牛 頓法出發(fā),通過FPGA實(shí)現(xiàn)來提高神經(jīng)網(wǎng)絡(luò)訓(xùn)練的速度,滿足神經(jīng)網(wǎng)絡(luò)在線訓(xùn)練的實(shí)時性要求。

本發(fā)明的技術(shù)方案:基于擬牛頓法在線訓(xùn)練神經(jīng)網(wǎng)絡(luò)的FPGA系統(tǒng),包括計(jì)算控制模塊CSC、隨機(jī)數(shù)產(chǎn)生模塊PNG、線性搜索模塊LS、梯度計(jì)算模塊GC、矩陣更新模塊HU和神經(jīng)網(wǎng)絡(luò)評估模塊NNE六大模塊;

所述計(jì)算控制模塊CSC采用有限狀態(tài)機(jī)的形式來安排上述各模塊的操作順序及內(nèi)存與相對應(yīng)模塊的數(shù)據(jù)傳遞;

所述線性搜索模塊LS、梯度計(jì)算模塊GC、矩陣更新模塊HU對應(yīng)于擬牛頓優(yōu)化算法的計(jì)算過程,神經(jīng)網(wǎng)絡(luò)評估模塊NNE將被線性搜索模塊LS調(diào)用;

所述矩陣更新模塊HU以BFGS方式更新矩陣并決定搜索方向,所述線性搜索模塊LS采用黃金分割法在搜索方向上確定搜索步長,所述梯度計(jì)算模塊GC完成目標(biāo)函數(shù)梯度的計(jì)算,所述隨機(jī)數(shù)產(chǎn)生模塊PNG基于32位線性移位寄存器產(chǎn)生神經(jīng)網(wǎng)絡(luò)的初始權(quán)重值。

本發(fā)明的另一技術(shù)方案:基于擬牛頓法在線訓(xùn)練神經(jīng)網(wǎng)絡(luò)的FPGA實(shí)現(xiàn)方法,包括以下步驟:

1)、分析擬牛頓法的c++代碼,將算法劃分為三個計(jì)算模塊,分別為梯度計(jì)算模塊GC、矩陣更新模塊HU和線性搜索模塊LS,通過編寫Verilog,將每個計(jì)算模塊實(shí)現(xiàn)為硬件塊;

2)、根據(jù)神經(jīng)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)、訓(xùn)練方式和激勵函數(shù),通過編寫Verilog確立神經(jīng)網(wǎng)絡(luò)評估模塊NNE的硬件結(jié)構(gòu);

3)、基于32位線性移位寄存器實(shí)現(xiàn)隨機(jī)數(shù)產(chǎn)生模塊PNG,該模塊用于產(chǎn)生神經(jīng)網(wǎng)絡(luò)的初始權(quán)重值;

4)、將FPGA片上存儲器用作緩沖器以鏈接上述五個硬件模塊,并存儲中間的計(jì)算結(jié)果,采用有限狀態(tài)機(jī)的形式安排上述五個模塊的操作順序及內(nèi)存與相對應(yīng) 模塊的數(shù)據(jù)傳遞;該模塊被命名為計(jì)算控制模塊CSC;

5)、將上述硬件設(shè)計(jì)在Net-FPGA SUME(xc7vx690t)開發(fā)板上綜合實(shí)現(xiàn),就資源利用率、運(yùn)行時間和功率消耗這三方面,對該硬件設(shè)計(jì)進(jìn)行性能測試。

所述步驟1)矩陣更新模塊HU以BFGS方式更新矩陣并決定搜索方向,線性搜索模塊LS采用黃金分割法在搜索方向上確定搜索步長,梯度計(jì)算模塊GC完成目標(biāo)函數(shù)梯度的計(jì)算。

所述步驟1)每個模塊內(nèi),采用流水線技術(shù)和模塊復(fù)用技術(shù)。

所述步驟1)硬件塊架構(gòu)根據(jù)模塊中涉及的操作來定制。

所述步驟2)硬件結(jié)構(gòu)分為前端和后端兩個部分;前端用于計(jì)算神經(jīng)網(wǎng)絡(luò)的實(shí)際輸出,后端用于計(jì)算神經(jīng)網(wǎng)絡(luò)的訓(xùn)練誤差。

所述步驟2)神經(jīng)網(wǎng)絡(luò)評估模塊NNE被線性搜索模塊LS和梯度計(jì)算模塊GC調(diào)用。

本發(fā)明相對于現(xiàn)有技術(shù)有以下有益效果:

本發(fā)明提出了一種基于擬牛頓法在線訓(xùn)練神經(jīng)網(wǎng)絡(luò)的FPGA實(shí)現(xiàn)方法,通過Xilinx Vivado 2014.04,將提出的硬件設(shè)計(jì)在Net-FPGA SUME(xc7vx690t)開發(fā)板上綜合實(shí)現(xiàn),優(yōu)點(diǎn)如下:

1)該設(shè)計(jì)可達(dá)到的最高頻率為250MHz;2)除Block Ram外,F(xiàn)PGA上的FF、LUT和DSP資源不受神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)影響;而現(xiàn)在的FPGA包含大量片上存儲資源,使設(shè)計(jì)具有可擴(kuò)展性;3)相比于軟件實(shí)現(xiàn),該設(shè)計(jì)可達(dá)到105倍的加速,可滿足神經(jīng)網(wǎng)絡(luò)在線訓(xùn)練的實(shí)時需求;4)相比于軟件實(shí)現(xiàn),該設(shè)計(jì)的動態(tài)功耗可減小12倍。

附圖說明

圖1是本發(fā)明基于擬牛頓法在線訓(xùn)練神經(jīng)網(wǎng)絡(luò)的FPGA的硬件架構(gòu)框圖;

圖2是本發(fā)明矩陣更新模塊(HU)的內(nèi)部數(shù)據(jù)流;

圖3是本發(fā)明梯度計(jì)算模塊(GC)的硬件結(jié)構(gòu)圖;

圖4是本發(fā)明線性搜索模塊(LS)的內(nèi)部結(jié)構(gòu)圖;

圖5是本發(fā)明神經(jīng)網(wǎng)絡(luò)評估模塊(NNE)的硬件結(jié)構(gòu)圖。

圖6是本發(fā)明的方法流程圖。

具體實(shí)施方式

下面通過具體實(shí)施例和附圖對本發(fā)明作進(jìn)一步的說明。本發(fā)明的實(shí)施例是為了更好地使本領(lǐng)域的技術(shù)人員更好地理解本發(fā)明,并不對本發(fā)明作任何的限制。

如圖1所示,基于擬牛頓法在線訓(xùn)練神經(jīng)網(wǎng)絡(luò)的FPGA系統(tǒng),包括計(jì)算控制模塊CSC、隨機(jī)數(shù)產(chǎn)生模塊PNG、線性搜索模塊LS、梯度計(jì)算模塊GC、矩陣更新模塊HU和神經(jīng)網(wǎng)絡(luò)模塊NNE六大模塊;

所述計(jì)算控制模塊CSC采用有限狀態(tài)機(jī)的形式來安排上述各模塊的操作順序及內(nèi)存與相對應(yīng)模塊的數(shù)據(jù)傳遞;

所述線性搜索模塊LS、梯度計(jì)算模塊GC、矩陣更新模塊HU對應(yīng)于擬牛頓優(yōu)化算法的計(jì)算過程,神經(jīng)網(wǎng)絡(luò)評估模塊NNE將被線性搜索模塊LS調(diào)用;

所述矩陣更新模塊HU以BFGS方式更新矩陣并決定搜索方向,所述線性搜索模塊LS采用黃金分割法在搜索方向上確定搜索步長,所述梯度計(jì)算模塊GC完成目標(biāo)函數(shù)梯度的計(jì)算,所述隨機(jī)數(shù)產(chǎn)生模塊PNG基于32位線性移位寄存器產(chǎn)生神經(jīng)網(wǎng)絡(luò)的初始權(quán)重值。

如圖6所示,基于擬牛頓法在線訓(xùn)練神經(jīng)網(wǎng)絡(luò)的FPGA實(shí)現(xiàn)方法,包括以下步驟:

1)、分析擬牛頓法的c++代碼,將算法劃分為三個計(jì)算模塊,分別為梯度計(jì)算模塊GC、矩陣更新模塊HU和線性搜索模塊LS,通過編寫Verilog,將每個計(jì)算模塊實(shí)現(xiàn)為硬件塊;矩陣更新模塊HU以BFGS方式更新矩陣并決定搜索方向,線性搜索模塊LS采用黃金分割法在搜索方向上確定搜索步長,梯度計(jì)算模塊GC完成目標(biāo)函數(shù)梯度的計(jì)算;每個模塊內(nèi),采用流水線技術(shù)和模塊復(fù)用技術(shù);硬 件塊架構(gòu)根據(jù)模塊中涉及的操作來定制;

2)、根據(jù)神經(jīng)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)、訓(xùn)練方式和激勵函數(shù),通過編寫Verilog確立神經(jīng)網(wǎng)絡(luò)評估模塊NNE的硬件結(jié)構(gòu);硬件結(jié)構(gòu)分為前端和后端兩個部分;前端用于計(jì)算神經(jīng)網(wǎng)絡(luò)的實(shí)際輸出,后端用于計(jì)算神經(jīng)網(wǎng)絡(luò)的訓(xùn)練誤差;

3)、基于32位線性移位寄存器實(shí)現(xiàn)隨機(jī)數(shù)產(chǎn)生模塊PNG,該模塊用于產(chǎn)生神經(jīng)網(wǎng)絡(luò)的初始權(quán)重值;

4)、將FPGA片上存儲器用作緩沖器以鏈接上述五個硬件模塊,并存儲中間的計(jì)算結(jié)果,采用有限狀態(tài)機(jī)的形式安排上述五個模塊的操作順序及內(nèi)存與相對應(yīng)模塊的數(shù)據(jù)傳遞;該模塊被命名為計(jì)算控制模塊CSC;

5)、將上述硬件設(shè)計(jì)在Net-FPGA SUME(xc7vx690t)開發(fā)板上綜合實(shí)現(xiàn),就資源利用率、運(yùn)行時間和功率消耗這三方面,對該硬件設(shè)計(jì)進(jìn)行性能測試。

本發(fā)明采用經(jīng)典的三層神經(jīng)網(wǎng)絡(luò)。該網(wǎng)絡(luò)的結(jié)構(gòu)參數(shù)如下:輸入層有N1個神經(jīng)元,向量為x=[x1,…,xi,…,xN1],隱含層有N2個神經(jīng)元,隱含層向量為h=[h1,…,hj,…,hN2],輸出層有N3個神經(jīng)元,輸出層向量為z=[z1,…,zl,…,zN3],其中i,j,l分別為第i個輸入神經(jīng)元,第j個隱含層神經(jīng)元和第l個輸出層神經(jīng)元;輸入層與隱含層之間的權(quán)值向量為隱含層與輸出層之間的權(quán)值向量為則該神經(jīng)網(wǎng)絡(luò)的權(quán)值向量為

神經(jīng)網(wǎng)絡(luò)訓(xùn)練是指從足夠多的輸入樣本,通過一定算法調(diào)整網(wǎng)絡(luò)權(quán)值,使網(wǎng)絡(luò)的實(shí)際輸出z與預(yù)期值相符。神經(jīng)網(wǎng)絡(luò)的標(biāo)準(zhǔn)誤差函數(shù)為:

其中,

其中,|ST|指訓(xùn)練數(shù)據(jù)對的個數(shù),xm和分別指第m組元素個數(shù)為N1和N2的向量,分別代表神經(jīng)網(wǎng)絡(luò)輸入值和理想輸出值。是的第l個元素,zl(xm,w)是神經(jīng)網(wǎng)絡(luò)對應(yīng)于輸入xm的第l個輸出,和分別是訓(xùn)練數(shù)據(jù)中理想輸出的最大值和最小值,F(xiàn)(hj)為隱含層神經(jīng)元的激勵函數(shù)。神經(jīng)網(wǎng)絡(luò)的訓(xùn)練問題可轉(zhuǎn)化為求解最優(yōu)化問題,形式如下:

求解該問題的流行算法有最速下降法、共軛梯度法、擬牛頓法和信賴域方法等。其中擬牛頓法以收斂速度快的特點(diǎn)而倍受歡迎。BFGS算法是目前求解無約束優(yōu)化問題的最流行的也是最有效的擬牛頓算法,其步驟如下:

算法1(BFGS算法)設(shè)函數(shù)ET由(1)給出,選取初始點(diǎn)w0∈Rn,若||g0||=0,算法終止;否則,選取初始矩陣B0(B0=I),I為單位矩陣,置k:=0。

步驟1由黃金分割法f(wkkdk)=minλ≥0f(wkkdk),計(jì)算搜索步長λk,其中dk為搜索方向;

步驟2置wk+1:=wkkdk,若||gk+1||=0,算法終止;否則,轉(zhuǎn)步驟3;

步驟3置sk:=wk+1-wk,yk:=gk+1-gk,dk:=-Bkgk;

步驟4置k:=k+1,轉(zhuǎn)步驟1。

其中,wk為神經(jīng)網(wǎng)絡(luò)權(quán)重值,λk為搜索步長,dk為搜索方向,gk是訓(xùn)練誤差ET關(guān)于wk的導(dǎo)數(shù),Bk是BFGS算法的更新矩陣,sk為兩次迭代權(quán)重的差值,yk為兩次迭代梯度的差值,k指第k次迭代。

上述算法1中的步驟2用于計(jì)算公式(1)關(guān)于wk的梯度,其計(jì)算過程具體如下:

輸出神經(jīng)元的梯度可表示為:

由等式(6)得到的輸出誤差δlm向后傳播可得到隱含層神經(jīng)元的梯度,隱含層神經(jīng)元的梯度由下式推導(dǎo)得到:

其中c′是常數(shù),δjm是隱含層神經(jīng)元的誤差,F(xiàn)′(hjm)是sigmoid函數(shù)F(hjm)的導(dǎo)數(shù),可由F′(hjm)=F(hjm)(1-F(hjm))得到,其具有較少的計(jì)算量并利于硬件實(shí)現(xiàn)。黃金分割算法的步驟如下:

算法2(黃金分割法)給定初始搜索區(qū)間和精度要求ε>0,若b0-a0<ε,那么算法終止,輸出

步驟1置u0=a0+0.382(b0-a0),v0=a0+0.618(b0-a0),計(jì)算ET(u0),ET(v0)。置k:=0;

步驟2若ET(uk)>ET(vk),則轉(zhuǎn)步驟3;否則轉(zhuǎn)步驟4;

步驟3若bk-uk<ε,則算法終止,輸出λ*:=vk;否則置ak+1:=uk,bk+1:=bk,uk+1:=vk,ET(uk+1):=ET(vk),計(jì)算vk+1=ak+1+0.618(bk+1-ak+1)和ET(vk+1),轉(zhuǎn)步驟5;

步驟4若vk-ak<ε,則算法終止,輸出λ*:=uk;否則置ak+1:=ak,bk+1:=vk,vk+1:=uk,ET(vk+1):=ET(uk),計(jì)算uk+1=ak+1+0.382(bk+1-ak+1)和ET(uk+1),轉(zhuǎn)步驟5;

步驟5置k:=k+1,轉(zhuǎn)步驟2。

將上述BFGS擬牛頓算法映射為硬件架構(gòu),共六大模塊,如圖1所示。算法1中的步驟1、步驟2、步驟3分別對應(yīng)于線性搜索模塊(LS)、梯度計(jì)算模塊(GC)、矩陣更新模塊(HU)。公式(1)至公式(3)對應(yīng)于神經(jīng)網(wǎng)絡(luò)評估模塊(NNE), 該模塊將被線性搜索模塊(LS)調(diào)用。除上述計(jì)算模塊外,還有隨機(jī)數(shù)產(chǎn)生模塊(PNG)和計(jì)算控制模塊(CSC)。隨機(jī)數(shù)產(chǎn)生模塊(PNG)基于32位線性移位寄存器產(chǎn)生神經(jīng)網(wǎng)絡(luò)的初始權(quán)重值w0。計(jì)算控制模塊(CSC)采用有限狀態(tài)機(jī)的形式來安排所有模塊的操作順序及內(nèi)存與相對應(yīng)模塊的數(shù)據(jù)傳遞。下文將結(jié)合附圖對四大計(jì)算模塊(HU、LS、GC、NNE)的設(shè)計(jì)做詳細(xì)介紹。

矩陣更新模塊(HU)根據(jù)算法1中的步驟3得到一個新的矩陣并確定搜索方向,其內(nèi)部數(shù)據(jù)流如圖2所示。圖中箭頭上字母表示的是一個數(shù)值(αk1k2)/向量(rk,zk)/矩陣(Hk,Pk1,Pk2,Qk1,Qk2,H’),而這些值是由該箭頭始端方框內(nèi)的運(yùn)算得到的。計(jì)算最密集的操作是矩陣向量乘(Hk×sk),如雙線框所示。為實(shí)現(xiàn)可擴(kuò)展性,矩陣向量乘以逐行的向量乘運(yùn)算來實(shí)現(xiàn)。由圖2可見,虛線框中的頂層塊(M1)和底層塊(M2)對稱,因此兩塊共用同一個硬件資源。特別地,M1與矩陣向量乘同時運(yùn)算,M2在M1與矩陣向量乘運(yùn)算結(jié)束后開始操作。FIFO用于暫存頂層塊(M1)的計(jì)算結(jié)果H′并等待底層塊(M2)完成操作。該模塊的電路設(shè)計(jì)采用IP復(fù)用技術(shù),通過Xilinx Vivado軟件中IP Catalog調(diào)用Float-Point(單浮點(diǎn)IP核,包括浮點(diǎn)加法器、減法器、乘法器、除法器)和Block Memory Generator(存儲器IP核,選用雙端口Ram)。電路內(nèi)部采用有限狀態(tài)機(jī),通過狀態(tài)的轉(zhuǎn)換來控制每步數(shù)據(jù)的讀入、讀出和存儲。

梯度計(jì)算模塊(GC)對應(yīng)于算法1中的步驟2,具體計(jì)算過程對應(yīng)于公式(6)至公式(7),其結(jié)構(gòu)如圖3所示。每組訓(xùn)練集的輸入值(hjm,F(hjm),ET_temp)由神經(jīng)網(wǎng)絡(luò)評估模塊(NNE)計(jì)算得到。當(dāng)新的輸入值可用時,僅用一個減法器就可首先得到輸出神經(jīng)元的誤差δlm,同時用一個減法器和一個乘法器計(jì)算隱含層神經(jīng)元輸出的梯度F’(hjm)。一旦得到輸出神經(jīng)元誤差后,開始向后傳播計(jì)算。左側(cè)累加單元用于實(shí)現(xiàn)輸出層權(quán)重與誤差的乘累加,即其結(jié)果與對應(yīng)的F’(hjm)依次相乘得到隱含神經(jīng)元的誤差δjm。右側(cè)兩個乘累加單元對不同訓(xùn)練集對產(chǎn)生的神經(jīng)元誤差進(jìn)行乘累加,分別得到等式(6)中的和 等式(7)中的

線性搜索模塊(LS)對應(yīng)于算法1中的步驟1,采用黃金分割法計(jì)算迭代步長。黃金分割法的具體操作對應(yīng)于算法2,該模塊的結(jié)構(gòu)圖如圖4所示,其由一系列算數(shù)操作和比較操作組成。該模塊計(jì)算量小但控制復(fù)雜,通過sel0-1信號來確定數(shù)據(jù)的傳輸通路。為減少資源,該模塊的乘法器和加法器采用復(fù)用技術(shù)。該模塊在計(jì)算過程中,會多次調(diào)用神經(jīng)網(wǎng)絡(luò)評估模塊(NNE)。

神經(jīng)網(wǎng)絡(luò)評估模塊(NNE)計(jì)算人工神經(jīng)網(wǎng)絡(luò)的訓(xùn)練誤差,分為前端和后端兩部分。前端用于計(jì)算神經(jīng)網(wǎng)絡(luò)的實(shí)際輸出,對應(yīng)于公式(2)至公式(4),結(jié)構(gòu)如圖5(b)所示。兩個累加單元分別用于得到輸出層和隱含層神經(jīng)元的輸出。在加法器的輸入和輸出端口間添加一個由若干個觸發(fā)器組成的可變移位寄存器,以確保神經(jīng)元間的正確累加。為加速神經(jīng)網(wǎng)絡(luò)的計(jì)算過程,前端結(jié)構(gòu)采用若干組處理單元。后端用于計(jì)算訓(xùn)練誤差,對應(yīng)于公式(1),結(jié)構(gòu)如圖5(a)所示。來自前端模塊的結(jié)果得到后,后端模塊開始計(jì)算。一個多路選擇器逐次選擇每組神經(jīng)網(wǎng)絡(luò)實(shí)際輸出,與對應(yīng)神經(jīng)網(wǎng)絡(luò)理論輸出相減。然后通過點(diǎn)積運(yùn)算實(shí)現(xiàn)平方和的操作。

下面對該硬件架構(gòu)進(jìn)行測試,下文對測試方法進(jìn)行介紹:

根據(jù)設(shè)計(jì)的硬件結(jié)構(gòu),在Xilinx Vivado 2014.04上編寫RTL代碼并綜合實(shí)現(xiàn),再下載到Net-FPGA SUME(xc7vx690tffg1761-3)開發(fā)板上進(jìn)行板級調(diào)試。該硬件設(shè)計(jì)可達(dá)到的最高時鐘頻率為250MHz,關(guān)鍵路徑為指數(shù)浮點(diǎn)IP核的最高時鐘頻率。就硬件設(shè)計(jì)的資源利用率、加速比和功耗三方面,本發(fā)明進(jìn)行了性能評估。

資源利用率:由Xilinx Vivado綜合實(shí)現(xiàn)后得到。

運(yùn)行時間:軟件實(shí)現(xiàn)選用來自于CSDN的開源的擬牛頓C++算法,在i5-4590 CPU的Microsoft Visual studio 2013上編譯。對于不同的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)和訓(xùn)練集數(shù),采用擬牛頓優(yōu)化算法的單次迭代平均時間作為軟硬件運(yùn)行時間的衡量標(biāo)準(zhǔn)。將軟件實(shí)現(xiàn)時間與硬件實(shí)現(xiàn)時間相除可得到加速比。

功率消耗:該實(shí)驗(yàn)中FPGA開發(fā)板和PC主板的供電電壓均為12V。兩個實(shí)現(xiàn)平臺的供電電流由Tektronix TCP0030電流鉗測得,并通過MS04054混合信號示波器觀察。將電壓乘以電流即可得到功耗。

應(yīng)當(dāng)理解的是,這里所討論的實(shí)施方案及實(shí)例只是為了說明,對本領(lǐng)域技術(shù)人員來說,可以加以改進(jìn)或變換,而所有這些改進(jìn)和變換都應(yīng)屬于本發(fā)明所附權(quán)利要求的保護(hù)范圍。

相關(guān)文獻(xiàn):

[1]王健偉,宋執(zhí)環(huán).基于嵌入式系統(tǒng)的神經(jīng)網(wǎng)絡(luò)在線訓(xùn)練平臺實(shí)現(xiàn)[J].傳感器與微系統(tǒng),2010,29(8):100-103.

[2]P.Antonik;F.Duport;M.Hermans;A.Smerieri;M.Haelterman;S.Massar,"Online Training of an Opto-Electronic Reservoir Computer Applied to Real-Time Channel Equalization,"in IEEE Transactions on Neural Networks and Learning Systems,vol.PP,no.99,pp.1-13

[3]Kim C M,Choi K H,Cho Y B.Hardware design of CMAC neural network for control applications[C]//International Joint Conference on Neural Networks.IEEE,2003:953-958vol.2.

[4]Y.Ma,N.Suda,Y.Cao,J.s.Seo,and S.Vrudhula,“Scalable and modularized rtl compilation of convolutional neural networks onto fpga,”in 2016 26th International Conference on Field Programmable Logic and Applications(FPL),Aug 2016,pp.1–8.

[5]E.Nurvitadhi,J.Sim,D.Sheffield,A.Mishra,S.Krishnan,and D.Marr,“Accelerating recurrent neural networks in analytics servers:Comparison of fpga,cpu,gpu,and asic,”in 2016 26th International Conference on Field Programmable Logic and Applications(FPL),Aug 2016,pp.1–4.

[6]E.Nurvitadhi,J.Sim,D.Sheffield,A.Mishra,S.Krishnan,and D. Marr,“Accelerating recurrent neural networks in analytics servers:Comparison of fpga,cpu,gpu,and asic,”in 2016 26th International Conference on Field Programmable Logic and Applications(FPL),Aug 2016,pp.1–4.

[7]F.Ortega-Zamorano,J.M.Jerez,and L.Franco,“FPGA implementation of the C-mantec neural network constructive algorithm,”IEEE Transactions on Industrial Informatics,vol.10,no.2,pp.1154–1161,May 2014.

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
桐乡市| 通山县| 新宾| 防城港市| 吴旗县| 会泽县| 长春市| 留坝县| 潮安县| 萨迦县| 齐齐哈尔市| 淅川县| 新蔡县| 广汉市| 盐池县| 西宁市| 夹江县| 谢通门县| 鹿泉市| 察哈| 宝坻区| 佛坪县| 巴马| 石屏县| 湄潭县| 三穗县| 河池市| 长兴县| 乌什县| 资中县| 泽普县| 太和县| 体育| 黄梅县| 吕梁市| 四会市| 塘沽区| 崇阳县| 新兴县| 冀州市| 方城县|