近來(lái)卷積神經(jīng)網(wǎng)絡(luò)(CNN)的研究十分熱門(mén)。CNN發(fā)展的一個(gè)瓶頸就是它需要非常龐大的運(yùn)算量,在實(shí)時(shí)性上有一定問(wèn)題。而FPGA具有靈活、可配置和適合高并行度計(jì)算的優(yōu)點(diǎn),十分適合部署CNN。
快速開(kāi)始
環(huán)境需求PYNQ v2.4,Python 3.6.5。
需要安裝caffe和Lasagne這兩個(gè)計(jì)算平臺(tái)。我們將使用caffe中預(yù)訓(xùn)練的參數(shù)并利用Lasagne來(lái)搭建網(wǎng)絡(luò)
具體安裝過(guò)程參見(jiàn)github項(xiàng)目文件中的 PYNQ案例-分類器.docx這個(gè)文檔,其包含了本項(xiàng)目的詳細(xì)操作步驟。
Overlay介紹
PYNQ-Classifcation是一個(gè)軟件上基于caffe和Lasagne,硬件加速的CNN分類器項(xiàng)目,它使用python語(yǔ)言在PYNQ框架下進(jìn)行軟件編程和硬件驅(qū)動(dòng)。
上圖為工程項(xiàng)目示意圖。通過(guò)軟硬件劃分,在PS端中負(fù)責(zé)Linux和通信,而PL端負(fù)責(zé)運(yùn)算加速。在PYNQ中加載bit時(shí),PL端的控制部分將以IP核形式呈現(xiàn)。通過(guò)Python,對(duì)IP核的參數(shù)配置來(lái)實(shí)現(xiàn)控制。
此項(xiàng)目中采用的CNN結(jié)構(gòu)示意圖(以CIFAR_10為例子),本項(xiàng)目中的卷積層由兩個(gè)子層構(gòu)成,一個(gè)是im2col子層,它的作用是將輸入矩陣中的卷積窗口展開(kāi)乘一維向量,另一個(gè)是點(diǎn)乘子層,它的作用是將im2col子層輸出的向量和展開(kāi)成一維的卷積核相乘加。卷積層有一個(gè)參數(shù)是output_rectify,這對(duì)應(yīng)的是當(dāng)前卷積層是否應(yīng)用Relu非線性層,0為否,1為是。池化層(pool)有兩種選項(xiàng),一是最大值池化,二是平均值池化。
項(xiàng)目演示(CIFAR-10為例)
運(yùn)行
/PYNQ-Classification/python_notebooks/Theano/CIFAR_10/Using a Caffe Pretrained Network - CIFAR10.ipynb
-- 如果想嘗試Lenet5則運(yùn)行
/PYNQ-Classification/python_notebooks/Theano/Lenet/Using a Caffe Pretrained Network - LeNet5.ipynb
它們的notebook類似,只不過(guò)硬件上部署的網(wǎng)絡(luò)不一樣
開(kāi)始
將庫(kù)都包含進(jìn)工程,并且讀取caffe中預(yù)先訓(xùn)練好的CIFAR_10模型。
然后
建立一個(gè)Lasagne的網(wǎng)絡(luò)結(jié)構(gòu),這個(gè)網(wǎng)絡(luò)結(jié)構(gòu)和硬件中的結(jié)構(gòu)類似,硬件中去掉了第一個(gè)ReLU層。將訓(xùn)練好的模型參數(shù)導(dǎo)入到這個(gè)網(wǎng)絡(luò)中。
接下來(lái)
導(dǎo)入CIFAR_10數(shù)據(jù)集
這里我們構(gòu)建一張新的網(wǎng)絡(luò),把原來(lái)的中間層換成我們自定義的FPGA_CIFAR10層,這一層把原來(lái)的中間層全部包含了進(jìn)去,并在FPGA上實(shí)現(xiàn)。然后輸入數(shù)據(jù)集,得到結(jié)果,結(jié)果保存在FPGA_predicted中。最后顯示了準(zhǔn)確度,達(dá)到72.8%。這里也會(huì)顯示一些耗時(shí)。
這里我們可以看到這個(gè)網(wǎng)絡(luò)的部分識(shí)別結(jié)果。
這里再用CPU運(yùn)行一遍這個(gè)網(wǎng)絡(luò),可以看到它用時(shí)46.5秒,比使用FPGA完成卷積慢了很多。
-
FPGA
+關(guān)注
關(guān)注
1630文章
21769瀏覽量
604651 -
cpu
+關(guān)注
關(guān)注
68文章
10889瀏覽量
212386 -
卷積神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
4文章
367瀏覽量
11885
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論