999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

FPGA在人工智能深度學習中的應(yīng)用

2022-10-26 08:52:52武漢工程大學郵電與信息工程學院周瑩
關(guān)鍵詞:模型

武漢工程大學郵電與信息工程學院 周瑩

近年來,F(xiàn)PGA應(yīng)用的呼聲之高,發(fā)展之快令人振奮,從AI到VR,從語音識別,人臉識別到各種各樣的加速器。在人工智能興起和發(fā)展的時代,深度學習起到了中流砥柱的作用,然而深度學習仍然面臨著超大計算量的問題,GPU、ASIC、FPGA都是解決龐大計算量的有效方案。本文將以Lenet卷積神經(jīng)網(wǎng)絡(luò)模型為例,基于CNN網(wǎng)絡(luò)模型和硬件架構(gòu)實現(xiàn),對CNN網(wǎng)絡(luò)的后向訓(xùn)練過程進行Matlab定點仿真和FPGA實現(xiàn)以及Modelsim仿真驗證,最終綜合對比FPGA、GPU、CPU的性能。

人工智能是研究用于模擬和擴展人類行為的一門新型技術(shù)學科。對于人工智能,特別是基于深度學習的應(yīng)用來說,很多應(yīng)用場所都對實時性有著很高的要求[1]。面對這個新時代提出的新要求,F(xiàn)PGA利用其特點,發(fā)揮著它重要的作用[2]。下文以CNN網(wǎng)絡(luò)的后向訓(xùn)練過程為例說明FPGA的性能優(yōu)勢。

DNN(深層神經(jīng)網(wǎng)絡(luò))包含兩類核心算法:CNN(卷積神經(jīng)網(wǎng)絡(luò))和LSTM(長短期記憶網(wǎng)絡(luò)),都能在很大程度上受益于低精度的乘加運算[3]。CNN算法目前是最重要的深度學習方法之一,這種算法在圖像識別以及語音識別應(yīng)用中取得了突破性的成就,下面就以CNN算法的后向訓(xùn)練過程模型架構(gòu)及結(jié)果仿真為例,說明FPGA在深度學習算法加速上的優(yōu)勢。

1 CNN的網(wǎng)絡(luò)模型

下面以一種具體的Lenet卷積神經(jīng)網(wǎng)絡(luò)模型為例,給該CNN一個輸入,輸入名為MINST的一個數(shù)據(jù)集,也就是一張灰度圖像,其像素是(1,28,28),如圖1所示。

其conv1作為第一個卷積層,卷積核的大小是(4,1,5,5),其中的4代表有4個(1,5,5)的卷積;利用非全零的方法進行填充,步長取1,Relu作為其激活函數(shù),再依據(jù)(式1)和(式2)可得,輸出(4,24,24);第1個池化層是Pooling1,經(jīng)過這個池化層之后,再采用最大池化策略的方式,利用非全零的方法進行填充,步長取2,這時的輸出是(4,12,12);conv2作為第二個卷積層,它的conv2卷積核大小是(4,4,5,5,),其中的4是指有4個(4,5,5)卷積,利用非全零填充的方法進行填充,步長取1,Relu作為其激活函數(shù),根據(jù)(式1)和(式2)可得,經(jīng)過卷積后的輸出是(4,8,8);接著進入到第二個池化層pooling2,采用Max Pooling的方式且池化值為(2,2),最終的輸出為(4,4,4);經(jīng)過2層全連接層FC1和FC2,F(xiàn)C1的大小是(12,64),激活函數(shù)是Relu,F(xiàn)C2的大小是(10,12),激活函數(shù)是Softmax。

通過該模型的訓(xùn)練之后,可以得到如圖2所示的系統(tǒng)損失函數(shù)的變化曲線,隨著迭代次數(shù)的疊加,損失函數(shù)將會逐漸變小,在開始的四千次迭代中損失函數(shù)的變化是迅速變小,而之后的四千到八千次時,曲線已經(jīng)變得非常緩慢,直到最后趨于平穩(wěn)。

可以通過曲線圖發(fā)現(xiàn):隨著迭代次數(shù)的增加,損失函數(shù)逐漸減小,最終會趨向一個穩(wěn)定值;而準確率的曲線圖是會不斷增大,最終也趨向于一個穩(wěn)定值,準確率曲線圖此處略[4]。總之,這種模型的損失函數(shù)變化曲線和準確率變化曲線都符合要求,性能良好。下文以該模型為例,介紹硬件加速的實現(xiàn)。

2 CNN的硬件結(jié)構(gòu)

對于CNN的后向訓(xùn)練過程,包含全連接層、池化層傳遞過程以及卷積層誤差;同時也包括了權(quán)值的更新。CNN硬件框架是以后向訓(xùn)練過程的誤差傳遞過程為主,前向預(yù)測過程的輸出結(jié)果長度為10,作為結(jié)構(gòu)的輸入,通過和Label(正確標簽)相減取得差值之后,便得到了全連接層FullConnected2的誤差項,再經(jīng)過全連接層隱層的誤差傳遞,會得到全連接層FullConnected1的誤差項,最終得到有效長度是8的4路卷積層,最后經(jīng)過池化層的誤差項傳遞和卷積層誤差項傳遞,就會得到有效長度為24的4路卷積層[5]。參數(shù)更新模塊被進入的誤差項進行更新之后,權(quán)值和偏置項也會被更新。下面介紹利用FPGA實現(xiàn)全連接層后向過程的仿真驗證。

3 FPGA實現(xiàn)全連接層后向過程仿真驗證

3.1 Matlab定點仿真

(1)根據(jù)卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練的算法理論,對上述Lenet卷積神經(jīng)網(wǎng)絡(luò)的后向訓(xùn)練過程進行Matlab的定點仿真。在Matlab中進行仿真,首先將數(shù)據(jù)集中的“mnist.train.images.txt”文件輸入,把“mnist.train.labels.txt”當做正確標志。均值設(shè)為0.1,初始化權(quán)值使用0,初始化方式采用標準差。

(2)向訓(xùn)練過程的定點方式采用1位符號位、5位整數(shù)位、12位小數(shù)位,即FI(1,18,12),采用這種方式后的輸出數(shù)據(jù)是卷積層為1的偏置b_conv1和權(quán)值w_conv1,卷積層為2的偏置b_conv2和權(quán)值w_conv2,全連接層為1的偏置b_full_connected1和權(quán)值w_full_connected1,全連接層為2的偏置b_full_connected2和權(quán)值w_full_connected2[6]。如圖3所示,訓(xùn)練的迭代次數(shù)是橫坐標,數(shù)據(jù)的最大相對誤差值是縱坐標,經(jīng)過分析訓(xùn)練過程中的相對誤差絕對值,可以得到相對誤差的最大值是10∧-2,顯然這個誤差結(jié)果是在期望值中的。

3.2 FPGA實現(xiàn)和結(jié)果驗證

Lenet卷積神經(jīng)網(wǎng)絡(luò)中全連接層隱層的誤差傳遞過程的Modelsim仿真結(jié)果如圖4所示,模塊是以10個連續(xù)誤差數(shù)據(jù)作為輸入,輸出是12路并行誤差數(shù)據(jù),該數(shù)據(jù)是由有效控制模塊和12個乘累加器得到的,利用Matlab仿真的結(jié)果與這個結(jié)果一樣,意味著模塊正確。

其中,全連接層隱層誤差傳遞模塊的端口信號定義如表1所示。

表1 模塊的端口信號說明-誤差傳遞Tab.1 Module's port signal description - error propagation

Lenet卷積神經(jīng)網(wǎng)絡(luò)中全連接層隱層的權(quán)值更新過程由第三方仿真工具Modelsim得出的時序結(jié)果如圖5所示,該模塊的輸入是單個的誤差數(shù)據(jù),輸出是64位的1路數(shù)據(jù),即64個權(quán)值。一個誤差更新64個權(quán)值,因此12個誤差更新了所有的768個權(quán)值[7]。Matlab仿真結(jié)果和FPGA經(jīng)過第三方仿真工具Modelsim的結(jié)果一樣,意味著模塊功能正確。

其中,全連接層隱層權(quán)值更新過程的端口信號定義如表2所示。

表2 端口信號說明-權(quán)值更新Tab.2 Port signal description - weight update

實現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)后向訓(xùn)練過程之后,經(jīng)過Modelsim仿真的波形圖如圖6所示。由時序圖可得,在FPGA中只要實現(xiàn)了一次后向訓(xùn)練,就需要821個時鐘信號,由于最大CLK頻率設(shè)定為200MHz,即5NS[8]。

通過分析后向訓(xùn)練在FPGA、GPU、CPU的性能,如表3所示。FPGA實現(xiàn)的后向訓(xùn)練過程對比CPU來說,處理速度提高了1.8倍,由于該結(jié)果受到訓(xùn)練過程中一系列外在因素的影響,例如權(quán)重相對正向過程需要轉(zhuǎn)置,就會浪費一定的處理時間[9]。雖然FPGA相對于GPU,處理速度稍有差距。但是FPGA功耗比GPU和CPU要小很多。

表3 后向訓(xùn)練過程FPGA、GPU、CPU性能對比Tab.3 Backward training process FPGA, GPU, CPU performance comparison

4 結(jié)語

目前深度學習的流行,其實仍然是得益于大數(shù)據(jù)和計算性能的提升。但是卻也遭受著計算能力和數(shù)據(jù)量限制的瓶頸。針對數(shù)據(jù)量的需求,還能夠利用調(diào)整或者變更模型來緩解,但面對計算力的挑戰(zhàn),卻沒有捷徑。FPGA解決了傳統(tǒng)PLD資源有限的劣勢,又克服了全定制的電路較死板的缺點[10]。隨著FPGA器件和云端部署等技術(shù)的發(fā)展,內(nèi)存帶寬已經(jīng)逐漸不再是DNN的算力瓶頸,取而代之的是單周期可以完成的乘加操作數(shù)量,這些都使得FPGA在未來的AI領(lǐng)域中,能夠發(fā)揮它最大的優(yōu)勢,推動科技的進步。

猜你喜歡
模型
一半模型
一種去中心化的域名服務(wù)本地化模型
適用于BDS-3 PPP的隨機模型
提煉模型 突破難點
函數(shù)模型及應(yīng)用
p150Glued在帕金森病模型中的表達及分布
函數(shù)模型及應(yīng)用
重要模型『一線三等角』
重尾非線性自回歸模型自加權(quán)M-估計的漸近分布
3D打印中的模型分割與打包
主站蜘蛛池模板: 国产a v无码专区亚洲av| 日韩在线欧美在线| 国产经典免费播放视频| 九九热精品视频在线| 亚洲成a人片在线观看88| 国产一区二区视频在线| 一区二区三区四区在线| 欧美国产日韩在线观看| 国产高颜值露脸在线观看| 亚洲人成网站色7799在线播放| 亚洲综合香蕉| 欧美成人aⅴ| 老司机aⅴ在线精品导航| 久久久久久久久久国产精品| 国产视频一区二区在线观看| 久久青青草原亚洲av无码| 中文字幕在线永久在线视频2020| 蜜桃视频一区二区| 日本黄色a视频| 曰韩人妻一区二区三区| 最新加勒比隔壁人妻| 在线精品自拍| 91精品国产情侣高潮露脸| 成人字幕网视频在线观看| 日韩精品成人网页视频在线| 成人午夜亚洲影视在线观看| 最近最新中文字幕免费的一页| 国产男女免费视频| 国产九九精品视频| 国产门事件在线| 久久精品国产精品青草app| 在线无码九区| 精品视频第一页| 67194成是人免费无码| 久久6免费视频| 性网站在线观看| 欧美第一页在线| 美女被操91视频| 91小视频在线播放| 特级毛片8级毛片免费观看| 国产精品视频999| 亚洲一区色| 日韩人妻无码制服丝袜视频| 国产成人a在线观看视频| 欧美日韩午夜视频在线观看| 2020精品极品国产色在线观看| a天堂视频在线| 欧美日韩国产系列在线观看| 国产另类乱子伦精品免费女| 国产一级α片| 国产成人亚洲毛片| 热伊人99re久久精品最新地| 亚洲狼网站狼狼鲁亚洲下载| 欧美国产日韩在线| 青青草国产一区二区三区| 亚洲精品福利视频| 久久这里只有精品66| 一本大道香蕉中文日本不卡高清二区| 一本大道香蕉久中文在线播放| 欧美日本不卡| 日韩无码黄色| 毛片久久久| 国产女人在线| 国产日韩丝袜一二三区| 噜噜噜久久| 亚洲国产日韩欧美在线| 国内精品久久九九国产精品| 91精品免费高清在线| 丁香婷婷在线视频| 国产一级二级在线观看| 在线国产91| 久久综合色视频| 99精品在线看| 2021最新国产精品网站| 色哟哟国产精品| 中文字幕伦视频| 狂欢视频在线观看不卡| 免费人成网站在线观看欧美| 免费人成视网站在线不卡| 国产精品久久久久婷婷五月| 国产剧情伊人| 欧美天堂久久|