基于FPGA的人工神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)方法的研究
引 言
??? 人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Network,ANN)是一種類似生物神經(jīng)網(wǎng)絡(luò)的信息處理結(jié)構(gòu),它的提出是為了解決一些非線性,非平穩(wěn),復(fù)雜的實(shí)際問題。目前實(shí)現(xiàn)ANN還主要依靠軟件程序.但是依靠程序很難達(dá)到實(shí)時(shí)性的要求。
??? 神經(jīng)網(wǎng)絡(luò)在FPGA上實(shí)現(xiàn)是獨(dú)立于馮·諾依曼架構(gòu),利用FPGA的并行性,在一些實(shí)時(shí)性要求很強(qiáng)的領(lǐng)域應(yīng)用。通用計(jì)算機(jī)雖然編程容易,但是很多時(shí)間浪費(fèi)在分析指令,讀出寫入數(shù)據(jù)等。于是人們想利用ASIC(專用計(jì)算芯片)完成神經(jīng)網(wǎng)絡(luò)的計(jì)算任務(wù),但是由于資源有限,這種芯片只限于實(shí)現(xiàn)特定的算法結(jié)構(gòu)和小規(guī)模網(wǎng)絡(luò),而且專用芯片的制作成本很高,只適合大批量生產(chǎn)。
??? 可編程邏輯器件FPGA的出現(xiàn)給IC設(shè)計(jì)行業(yè)一個(gè)很強(qiáng)的工具,它可以小成本的開發(fā)一些專用芯片,如果開發(fā)是成功的可以考慮流片生產(chǎn)。用FPGA實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)比ASIC神經(jīng)計(jì)算單元更容易實(shí)現(xiàn),利用可編程邏輯,F(xiàn)PGA可以實(shí)現(xiàn)像軟件一樣的設(shè)計(jì)靈活性,特別是對(duì)于復(fù)雜網(wǎng)絡(luò),設(shè)計(jì)周期大大縮短,其內(nèi)部的重構(gòu)邏輯模塊(Configurable Logic Blocks,CLBs)包含若干邏輯單元,利用固有的可重構(gòu)路徑結(jié)構(gòu)可以實(shí)現(xiàn)高效率的連接。此外,現(xiàn)在正在開發(fā)中的一種神經(jīng)計(jì)算芯片為神經(jīng)網(wǎng)絡(luò)的實(shí)現(xiàn)提出了一種新的有效方法。
1 FPGA實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)關(guān)鍵問題分析
??? (1)選擇合適的神經(jīng)網(wǎng)絡(luò)及其拓?fù)浣Y(jié)構(gòu)
??? 不同的神經(jīng)網(wǎng)絡(luò)有不同的應(yīng)用,而且不同的網(wǎng)絡(luò)完成知識(shí)表達(dá)的機(jī)理是不同的,某一個(gè)神經(jīng)網(wǎng)絡(luò)不是萬能的.對(duì)于實(shí)際問題,首先要做的就是選擇針對(duì)性的神經(jīng)網(wǎng)絡(luò),如線性分類問題可以用簡(jiǎn)單的感知器,對(duì)于復(fù)雜的分類問題,函數(shù)逼近問題可以使用BP網(wǎng)絡(luò),對(duì)于一些聚類問題可以使用徑向基(RBF)網(wǎng)絡(luò)等。以BP網(wǎng)絡(luò)結(jié)構(gòu)為例,這種被廣泛采用的架構(gòu)由具有錯(cuò)誤反向傳播算法的多層感知器構(gòu)成(Multilayer Perceptrons u-sing Back-Propagation,MLP-BP),訓(xùn)練一個(gè)BP網(wǎng)絡(luò)主要的問題就在于:訓(xùn)練開始之前,對(duì)于網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)缺乏一種明確的確定方法。而進(jìn)行各種拓?fù)浣Y(jié)構(gòu)的實(shí)驗(yàn)并不那么容易,因?yàn)閷?duì)于每一個(gè)訓(xùn)練周期都要消耗很長(zhǎng)的時(shí)間,特別是復(fù)雜的網(wǎng)絡(luò),更是如此;其次,對(duì)于硬件而言,最合適的網(wǎng)絡(luò)運(yùn)算法則不僅在于它達(dá)到收斂有多么快,還要考慮是否容易在硬件上實(shí)現(xiàn)且這種實(shí)現(xiàn)代價(jià)和性能如何;另外,對(duì)于同一種NN(Neural Net-work)。其拓?fù)浣Y(jié)構(gòu)對(duì)網(wǎng)絡(luò)的收斂特性以及知識(shí)表達(dá)特性都有影響,一般增加網(wǎng)絡(luò)的神經(jīng)元或者神經(jīng)元的層數(shù),是可以增加網(wǎng)絡(luò)的逼近能力,但是可能會(huì)影響網(wǎng)絡(luò)的學(xué)習(xí)收斂情況,而且還可能會(huì)因?yàn)檫^適應(yīng)(Overfit)而失去泛化能力。
??? (2)正確選擇數(shù)值表達(dá)形式
??? 精度的選擇對(duì)處理密度(與耗費(fèi)的硬件資源成反比)有直接影響。其中浮點(diǎn)數(shù)可以在計(jì)算機(jī)中表達(dá)實(shí)數(shù),它有相對(duì)高的精度和大的動(dòng)態(tài)范圍,使用浮點(diǎn)數(shù)使得計(jì)算更為精確,但是在FPGA上實(shí)現(xiàn)浮點(diǎn)數(shù)運(yùn)算是一個(gè)很大的挑戰(zhàn),而且會(huì)耗費(fèi)很多硬件資源。盡管如此,加拿大研究人員Medhat Moussa and Shawki Arei-bi仍然實(shí)現(xiàn)了浮點(diǎn)數(shù)的運(yùn)算,并進(jìn)行了詳細(xì)的對(duì)比分析。
??? 對(duì)于MLP-BP而言,Holt and Baker憑借仿真和理論分析指出16為定點(diǎn)(1位標(biāo)志位,3位整數(shù)位和12位小數(shù)位)是最小可允許的精度表示(指可以達(dá)到收斂)。以邏輯XOR問題為例,文獻(xiàn)[1]中表格2.5(見表1)表明與基于FPGA的MLP-BP浮點(diǎn)法實(shí)現(xiàn)相比,定點(diǎn)法實(shí)現(xiàn)在速度上高出12倍,面積上是浮點(diǎn)實(shí)現(xiàn)的1/13,而且有更高的處理密度。
??? 同時(shí)數(shù)據(jù)也說明基于FPGA的16位定點(diǎn)MLP-BP實(shí)現(xiàn)在處理密度上高于基于軟件方法的MLP-BP實(shí)現(xiàn),這最好地證明可重構(gòu)計(jì)算方法的處理密度優(yōu)勢(shì)。應(yīng)該說,在這種應(yīng)用中浮點(diǎn)數(shù)遠(yuǎn)不如定點(diǎn)數(shù)合適。但是定點(diǎn)數(shù)表示的缺點(diǎn)在于有限精度,盡管如此,對(duì)于不同的應(yīng)用選擇合適的字長(zhǎng)精度,仍然可以得到收斂。因此,目前基于FPGA的ANN大多數(shù)是使用定點(diǎn)數(shù)進(jìn)行計(jì)算的。
??? (3)門限非線性激活函數(shù)(Non-linear activationFunction)的實(shí)現(xiàn)
??? ANN的知識(shí)表達(dá)特性與非線性逼近能力,有很大部分源自門限函數(shù)。在MLP網(wǎng)絡(luò)中,門限函數(shù)大部分是非線性函數(shù)(少數(shù)是線性函數(shù),如輸出層的門限函數(shù)),但是非線性傳遞函數(shù)的直接硬件實(shí)現(xiàn)太昂貴,目前實(shí)現(xiàn)門限函數(shù)的方法主要有:查表法(look-up ta-ble)、分段線性逼近、多項(xiàng)式近似法、有理近似法以及協(xié)調(diào)旋轉(zhuǎn)數(shù)字計(jì)算機(jī)(Coordinated Rotation Digital Com-puter,CORDIC)法則,CORDIC法則實(shí)現(xiàn)函數(shù)的優(yōu)點(diǎn)在于同一硬件資源能被若干個(gè)函數(shù)使用,但是性能相當(dāng)差,因此較少使用。而高次多項(xiàng)式近似法盡管可以實(shí)現(xiàn)低誤差近似,但是實(shí)現(xiàn)需要耗費(fèi)較高硬件資源。相對(duì)而言,查找表法和分段線性逼近法(注意:查找表不易太大,否則速度會(huì)慢且代價(jià)也大)更適合FPGA技術(shù)實(shí)現(xiàn)。其中分段線性近似法以y=c1+c2x的形式描述一種線性連接組合(如圖1所示),如果線性函數(shù)的系數(shù)值為2的冪次,則激活函數(shù)可以由一系列移位和加法操作實(shí)現(xiàn),許多神經(jīng)元的傳遞函數(shù)就是這樣實(shí)現(xiàn)的,而查找表法則是將事先計(jì)算的數(shù)值依次存儲(chǔ)在需要查詢的存儲(chǔ)器中來實(shí)現(xiàn)。
? (4)面積節(jié)省及相關(guān)問題
??? 為了最小化神經(jīng)元實(shí)現(xiàn)的面積,組成每個(gè)神經(jīng)元的各個(gè)HDL算法模塊的面積也應(yīng)該最小。乘法器以及基本的傳遞函數(shù)(例如,sigmoid激活函數(shù)tanh)是最占用面積的,這類問題非常依賴于所要求的精度,盡管神經(jīng)網(wǎng)絡(luò)常并不要求很精確的計(jì)算,但是不同的應(yīng)用所要求的精度不同。一般來講,浮點(diǎn)運(yùn)算要比定點(diǎn)運(yùn)算需要更大的面積,比如浮點(diǎn)運(yùn)算中的并行加法器本質(zhì)上是定點(diǎn)運(yùn)算超前加法器加上必要的邏輯塊,減法器、乘法器也類似如此,這在激活函數(shù)實(shí)現(xiàn)方面更加突出,文獻(xiàn)[1]中面積優(yōu)化對(duì)比顯示,32位浮點(diǎn)運(yùn)算要比16位定點(diǎn)運(yùn)算大250倍。另外,對(duì)于小型網(wǎng)絡(luò),分布式存儲(chǔ)器很適合權(quán)值存放,但是對(duì)于大型網(wǎng)絡(luò),權(quán)值存儲(chǔ)器不應(yīng)該被放置在FPGA中,因此當(dāng)ANN得到有效實(shí)現(xiàn)的時(shí)候,就要認(rèn)真考慮存儲(chǔ)器的存取問題。其次,神經(jīng)網(wǎng)絡(luò)應(yīng)用有一個(gè)顯著的缺陷:在神經(jīng)計(jì)算方面,不同運(yùn)算的計(jì)算時(shí)間和實(shí)現(xiàn)面積并不平衡。在許多標(biāo)準(zhǔn)神經(jīng)模式中,計(jì)算時(shí)間的大部分用在需要乘法器和加法器的矩陣向量運(yùn)算中,而很多耗費(fèi)面積的運(yùn)算如激活函數(shù),又必須被實(shí)現(xiàn)(它們占用很少的運(yùn)算時(shí)間),而FPGA的面積是嚴(yán)格一定的,因此可將面積的相當(dāng)一部分用來實(shí)現(xiàn)這些運(yùn)算,以至于FPGA僅剩的一小部分卻實(shí)現(xiàn)幾乎所有的運(yùn)算時(shí)間。
??? (5)資源和計(jì)算速度的平衡(Trade-off)
??? 對(duì)于FPGA,科學(xué)的設(shè)計(jì)目標(biāo)應(yīng)該是在滿足設(shè)計(jì)時(shí)序要求(包括對(duì)設(shè)計(jì)最高頻率的要求)的前提下,占用最少的芯片資源,或者在所規(guī)定的占用資源下,使設(shè)計(jì)的時(shí)序余量更大,頻率更高。這兩種目標(biāo)充分體現(xiàn)了資源和速度的平衡思想。作為矛盾的兩個(gè)組成部分,資源和速度的地位是不一樣的。相比之下,滿足時(shí)序、工作頻率的要求更重要一些,當(dāng)兩者沖突時(shí),采用速度優(yōu)先的準(zhǔn)則。
??? 例如,ANN的FPGA實(shí)現(xiàn)需要各種字長(zhǎng)的乘法器,如果可以提出一種新的運(yùn)算法則,從而用FPGA實(shí)現(xiàn)變字長(zhǎng)的乘法器,則可以根據(jù)需要調(diào)整字長(zhǎng),從而提高運(yùn)算速度的可能性,其中,基于Booth Encoded opti-mized wallence tree架構(gòu)(見圖2)就可以得到快速高效的乘法器,這種方式實(shí)現(xiàn)的乘法器比現(xiàn)在所用的基于FPGA的乘法器的處理速度快20%)。
??? (6)亟待解決的問題
??? FPGA憑借其如同軟件實(shí)現(xiàn)一樣的靈活性,集合了硬件實(shí)現(xiàn)高效和并行性的優(yōu)點(diǎn),好像非常適合神經(jīng)實(shí)現(xiàn)的正常需要,但是,F(xiàn)PGA的二維拓?fù)浣Y(jié)構(gòu)不能處理標(biāo)準(zhǔn)神經(jīng)網(wǎng)絡(luò)規(guī)則但復(fù)雜的連線問題,而且FPGA仍然實(shí)現(xiàn)很有限的邏輯門數(shù)目,相反,神經(jīng)計(jì)算則需要相當(dāng)耗費(fèi)資源的模塊(激活函數(shù),乘法器)。這樣對(duì)于FP-GA,可用的CLBs中部分將被用來增加路徑容量(連線),導(dǎo)致計(jì)算資源的丟失。一般的方法只能實(shí)現(xiàn)很小的低精度神經(jīng)網(wǎng)絡(luò),連線問題不能依靠幾個(gè)具有比特序列算法的可重構(gòu)FPGA以及小面積模塊(隨機(jī)比特流或者頻率)解決。
2 基于FPGA的ANN實(shí)現(xiàn)方法
??? 經(jīng)典實(shí)現(xiàn)方法有:
??? (1)可重構(gòu)的RNN結(jié)構(gòu)(Reconfigurable NeuraINetwork)
??? 可重構(gòu)計(jì)算是一種增加處理密度(每單元硅片面積的性能)的有效方法,且處理密度遠(yuǎn)大于用于通用計(jì)算方法,F(xiàn)PGA作為可重構(gòu)計(jì)算的平臺(tái),可以提供如同軟件一樣的設(shè)計(jì)靈活性。該方法基于可擴(kuò)展的脈動(dòng)陣列結(jié)構(gòu)、可重用的IP(Intellectual Properties)核及FPGA器件,即將要實(shí)現(xiàn)的神經(jīng)網(wǎng)絡(luò)算法分為幾種基本運(yùn)算,這些基本運(yùn)算由可重構(gòu)單元(Reconfigurable Cell,RC)完成,RC間以規(guī)則的方式相互連接,當(dāng)神經(jīng)網(wǎng)絡(luò)變化時(shí),只要增減Rc的數(shù)量或替換不同功能的RC就可重構(gòu)成新的神經(jīng)網(wǎng)絡(luò)硬件;文獻(xiàn)[8]中同時(shí)指出,考慮到硬件實(shí)現(xiàn)要以最少的硬件資源滿足特定應(yīng)用的性能需求,一般用神經(jīng)元并行作為可重構(gòu)部件的基本模式,即神經(jīng)網(wǎng)絡(luò)的各層計(jì)算可復(fù)用相同的陣列結(jié)構(gòu)。
??? (2)RENCO結(jié)構(gòu)
??? 可重構(gòu)網(wǎng)絡(luò)計(jì)算機(jī)(Reconfigurable Network Computer,RENCO)是一種用于邏輯設(shè)計(jì)原型或可重構(gòu)系統(tǒng)的平臺(tái),所設(shè)計(jì)的可重構(gòu)系統(tǒng)對(duì)于工作在比特級(jí)的算法實(shí)現(xiàn)特別有效,比如模式匹配。RENCO的基本架構(gòu)包括處理器、可重構(gòu)部分(多為FPGA)以及存儲(chǔ)器和總線部分,Altera公司提供的最新的RENCO在可重構(gòu)部分包括近100萬邏輯門,足夠?qū)崿F(xiàn)高復(fù)雜度的處理器。具體參見文獻(xiàn)[9]。盡管如此,得到的可重構(gòu)系統(tǒng)并非對(duì)所有的硬件實(shí)現(xiàn)都是優(yōu)化的方法,比如不適合于浮點(diǎn)運(yùn)算。
(3)隨機(jī)比特流方法
隨機(jī)比特流(Stochastic Bit Strearns)的方法是使用串行隨機(jī)的方法實(shí)現(xiàn)一些運(yùn)算操作,目的是為了節(jié)約資源和充分利用神經(jīng)網(wǎng)絡(luò)的實(shí)時(shí)性。隨機(jī)算法的提出源于它的簡(jiǎn)易性,基本原理即首先將所有的輸入轉(zhuǎn)換成二進(jìn)制隨機(jī)比特流,就是任意化;然后,由數(shù)字電路組成的隨機(jī)算法實(shí)現(xiàn)取代正常的算法;最后,隨機(jī)比特流轉(zhuǎn)回到正常的數(shù)值(文獻(xiàn)[10]中有詳細(xì)總結(jié))。隨機(jī)算法提供一種方法,用簡(jiǎn)單的硬件實(shí)現(xiàn)復(fù)雜的計(jì)算,同時(shí)又不失靈活性,而且隨機(jī)實(shí)現(xiàn)又與現(xiàn)代VLSI設(shè)計(jì)和生產(chǎn)技術(shù)兼容。
??? FPNA實(shí)現(xiàn)方法:
??? 憑借著簡(jiǎn)化的拓?fù)浣Y(jié)構(gòu)和獨(dú)特的數(shù)據(jù)交換流圖,F(xiàn)PNA(Field Programmable Neural Arrays)成功地解決了以簡(jiǎn)單的硬件拓?fù)浣Y(jié)構(gòu)有效地實(shí)現(xiàn)復(fù)雜的神經(jīng)架構(gòu)問題,是一種特別適合FPGA直接實(shí)現(xiàn)的神經(jīng)計(jì)算范例。FPNA基于一種類似FPGA的結(jié)構(gòu):它包含一系列可以自由配置的資源,這些神經(jīng)資源被定義用來實(shí)現(xiàn)標(biāo)準(zhǔn)神經(jīng)元的計(jì)算功能,但是它們是一種自主的方式,這樣通過有限的連接可以創(chuàng)造出許多虛擬的連線。利用這種新的神經(jīng)計(jì)算理念,一個(gè)標(biāo)準(zhǔn)的但結(jié)構(gòu)復(fù)雜的神經(jīng)網(wǎng)絡(luò)可以由一個(gè)簡(jiǎn)化的神經(jīng)網(wǎng)絡(luò)替代(文獻(xiàn)[11]給出了詳細(xì)的數(shù)學(xué)表示和說明)。
??? 為了有個(gè)直觀的理解,圖3(a)表示一個(gè)簡(jiǎn)單的MLP結(jié)構(gòu);圖3(b)說明通過節(jié)點(diǎn)間的直接連接建立虛擬連接。
??? 文獻(xiàn)[11]中的例證表明FPNA計(jì)算范例確實(shí)允許一系列給定的神經(jīng)資源代替具有不同架構(gòu)的標(biāo)準(zhǔn)神經(jīng)網(wǎng)絡(luò)。然而,從圖4中可能并非如此,MLP架構(gòu)并沒有得到簡(jiǎn)化,原因在于如此簡(jiǎn)單的MLP完全沒有必要,也不可能再簡(jiǎn)化。文獻(xiàn)[12]描述了大型神經(jīng)網(wǎng)絡(luò)得到明顯簡(jiǎn)化的實(shí)例。需要注意的是,F(xiàn)PNA是一個(gè)適應(yīng)神經(jīng)計(jì)算的硬件框架,而不是一種處理簡(jiǎn)化神經(jīng)計(jì)算的實(shí)現(xiàn)方法(Field Programmable Neural Network,F(xiàn)PNN)。要設(shè)計(jì)一個(gè)FPNA,首先要選擇一個(gè)針對(duì)應(yīng)用的合適的標(biāo)準(zhǔn)神經(jīng)架構(gòu),然后決定一個(gè)既適合于實(shí)現(xiàn)又在功能上等價(jià)于所選擇神經(jīng)網(wǎng)絡(luò)的可配置FPNA,F(xiàn)PNA獨(dú)特的計(jì)算方案在于在復(fù)雜神經(jīng)網(wǎng)絡(luò)和可用的硬件資源之間創(chuàng)造了一座橋梁,它適用于許多實(shí)現(xiàn)選擇;最后,得到的FP-NA直接映射到硬件設(shè)備上,這將得益于完整的模塊式實(shí)現(xiàn),即對(duì)于每個(gè)神經(jīng)資源,預(yù)先給定可配置模塊,然后依照。FPNA硬件友好的架構(gòu)進(jìn)行組合。
3 基于FPGA的神經(jīng)網(wǎng)絡(luò)的性能評(píng)估及局限性
??? 對(duì)于FPGA實(shí)現(xiàn)的ANN,最普遍的性能評(píng)估方法是每秒神經(jīng)元乘累加的次數(shù)(Connections-Per-Sec-ond,CPS)和即每秒權(quán)值更新的次數(shù)(Connections-Updates-Per-Second,CPUS)。但是CPS和CPUS并不是適于所有的網(wǎng)絡(luò),如RBF徑向基網(wǎng)絡(luò),另外,更大的CPS和CPUS值并不一定意味著更好的性能。因此,最好的性能測(cè)量方法是實(shí)際執(zhí)行時(shí)間,但是仍有些問題要討論。FPGA實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)存在的一些缺點(diǎn)(相對(duì)于計(jì)算機(jī)軟件而言):
??? (1)FPGA上實(shí)現(xiàn)的神經(jīng)網(wǎng)絡(luò)大多數(shù)是計(jì)算結(jié)構(gòu),而不是認(rèn)知結(jié)構(gòu)(雖然現(xiàn)在有些人試圖在FPGA上實(shí)現(xiàn)BP算法。但是整個(gè)的結(jié)構(gòu)和時(shí)序控制變得很復(fù)雜,并且無法達(dá)到計(jì)算機(jī)軟件那樣的計(jì)算精度);
??? (2)在FPGA上實(shí)現(xiàn)的神經(jīng)網(wǎng)絡(luò)通用性差。目前FPGA的使用者大多數(shù)都是在RTL級(jí)(寄存器傳輸級(jí))編寫VHDL/Verilog HDL實(shí)現(xiàn)數(shù)字系統(tǒng),而正在興起的Handel-C&SystemC,可以使硬件編程者站在算法級(jí)角度,可能對(duì)以后的基于FPGA的神經(jīng)網(wǎng)絡(luò)的性能有所改善。
4 基于FPGA實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)的發(fā)展方向
??? (1)一種基于REMAP-β實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)汁算機(jī)的方法。REMAP-β可重構(gòu)架構(gòu)基于FPGA技術(shù),RE-MAP-β并行計(jì)算機(jī)應(yīng)用在嵌入式實(shí)時(shí)系統(tǒng)中,以有效提高ANN算法實(shí)現(xiàn)的效率,目前它的進(jìn)一步發(fā)展RE-MAP-r正在探討中。
??? (2)另一種基于FPGA實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)的發(fā)展方向——系統(tǒng)C語言,直接在可編程硬件平臺(tái)支持C/C++,使得編程更加容易。但是這個(gè)轉(zhuǎn)換并不容易,因?yàn)椋篎PGA不是程序,而是電路。
5 結(jié) 語
??? 詳細(xì)總結(jié)了FPGA實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)的方法及相關(guān)問題,這里要注意,基于FPGA實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò),并不是要與基于計(jì)算機(jī)軟件實(shí)現(xiàn)一比高低,相反,在很多情況下,采用計(jì)算機(jī)軟件測(cè)試神經(jīng)網(wǎng)絡(luò)的收斂情況,計(jì)算出收斂時(shí)的權(quán)值,然后通過數(shù)據(jù)口線與FPGA模塊通信,把權(quán)值交給FPGA中的神經(jīng)網(wǎng)絡(luò),使用FPGA完成現(xiàn)實(shí)的工作。直到現(xiàn)在,軟件方法仍然是實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)的首選。另外,對(duì)于硬件設(shè)計(jì)者(指利用FPGA或者全定制、半定制ASIC實(shí)現(xiàn)設(shè)計(jì))而言,mask ASICs提供首選的方法以得到大規(guī)模、快速和完全的神經(jīng)網(wǎng)絡(luò)。現(xiàn)在它已經(jīng)開發(fā)出了所有的新型可編程器件的嵌入式資源,以得到可以實(shí)時(shí)訓(xùn)練的更有用的神經(jīng)網(wǎng)絡(luò)。
評(píng)論
查看更多