吴忠躺衫网络科技有限公司

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

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

3天內不再提示

基于caffe和Lasagne CNN分類器的FPGA上實現

電子設計 ? 來源:PYNQ開源社區 ? 作者:PYNQ開源社區 ? 2020-11-09 17:28 ? 次閱讀

近來卷積神經網絡(CNN)的研究十分熱門。CNN發展的一個瓶頸就是它需要非常龐大的運算量,在實時性上有一定問題。而FPGA具有靈活、可配置和適合高并行度計算的優點,十分適合部署CNN。

快速開始

環境需求PYNQ v2.4,Python 3.6.5。

需要安裝caffe和Lasagne這兩個計算平臺。我們將使用caffe中預訓練的參數并利用Lasagne來搭建網絡

具體安裝過程參見github項目文件中的 PYNQ案例-分類器.docx這個文檔,其包含了本項目的詳細操作步驟。

Overlay介紹

PYNQ-Classifcation是一個軟件上基于caffe和Lasagne,硬件加速的CNN分類器項目,它使用python語言在PYNQ框架下進行軟件編程和硬件驅動。

上圖為工程項目示意圖。通過軟硬件劃分,在PS端中負責Linux通信,而PL端負責運算加速。在PYNQ中加載bit時,PL端的控制部分將以IP核形式呈現。通過Python,對IP核的參數配置來實現控制。

此項目中采用的CNN結構示意圖(以CIFAR_10為例子),本項目中的卷積層由兩個子層構成,一個是im2col子層,它的作用是將輸入矩陣中的卷積窗口展開乘一維向量,另一個是點乘子層,它的作用是將im2col子層輸出的向量和展開成一維的卷積核相乘加。卷積層有一個參數是output_rectify,這對應的是當前卷積層是否應用Relu非線性層,0為否,1為是。池化層(pool)有兩種選項,一是最大值池化,二是平均值池化。

項目演示(CIFAR-10為例)

運行

/PYNQ-Classification/python_notebooks/Theano/CIFAR_10/Using a Caffe Pretrained Network - CIFAR10.ipynb

-- 如果想嘗試Lenet5則運行

/PYNQ-Classification/python_notebooks/Theano/Lenet/Using a Caffe Pretrained Network - LeNet5.ipynb

它們的notebook類似,只不過硬件上部署的網絡不一樣

開始

將庫都包含進工程,并且讀取caffe中預先訓練好的CIFAR_10模型。

然后

建立一個Lasagne的網絡結構,這個網絡結構和硬件中的結構類似,硬件中去掉了第一個ReLU層。將訓練好的模型參數導入到這個網絡中。

下一步

我們將模型參數導入硬件,使用FPGALoadW函數來實現這一步。函數會打印出一些有關信息

接下來

導入CIFAR_10數據集

這里我們構建一張新的網絡,把原來的中間層換成我們自定義的FPGA_CIFAR10層,這一層把原來的中間層全部包含了進去,并在FPGA上實現。然后輸入數據集,得到結果,結果保存在FPGA_predicted中。最后顯示了準確度,達到72.8%。這里也會顯示一些耗時。

這里我們可以看到這個網絡的部分識別結果。

這里再用CPU運行一遍這個網絡,可以看到它用時46.5秒,比使用FPGA完成卷積慢了很多。

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

    關注

    1630

    文章

    21798

    瀏覽量

    606022
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10904

    瀏覽量

    213026
  • 卷積神經網絡

    關注

    4

    文章

    367

    瀏覽量

    11916
收藏 人收藏

    評論

    相關推薦

    TF之CNNCNN實現mnist數據集預測

    TF之CNNCNN實現mnist數據集預測 96%采用placeholder用法+2層C及其max_pool法+隱藏層dropout法+輸出層softmax法+目標函數cross_entropy法+
    發表于 12-19 17:02

    TensorFlow的CNN文本分類

    在TensorFlow中實現CNN進行文本分類(譯)
    發表于 10-31 09:27

    如何移植一個CNN神經網絡到FPGA中?

    二次開發。移植一個神經網絡到Lattice FPGA可以分為三步:第一步:使用Tensorflow, Caffe, Keras訓練自己的網絡。(這里Lattice官網的參考設計提供了訓練網絡部分的參考代碼
    發表于 11-26 07:46

    【CANN訓練營第三季】基于Caffe ResNet-50網絡實現圖片分類

    【CANN訓練營第三季】基于Caffe ResNet-50網絡實現圖片分類
    發表于 12-19 22:34

    如何將DS_CNN_S.pb轉換為ds_cnn_s.tflite?

    用于圖像分類(eIQ tensflowlite 庫)。從廣義講,我正在尋找該腳本,您可能已經使用該腳本將 DS_CNN_S.pb 轉換為 ds_cnn_s.tflite我能夠查看兩個
    發表于 04-19 06:11

    基于FPGA的通用CNN加速設計

    基于FPGA的通用CNN加速整體框架如下,通過Caffe/Tensorflow/Mxnet等框架訓練出來的CNN模型,通過編譯
    發表于 10-27 14:09 ?1w次閱讀
    基于<b class='flag-5'>FPGA</b>的通用<b class='flag-5'>CNN</b>加速設計

    簡單快捷地用小型Xiliinx FPGA加速卷積神經網絡CNN

    剛好在知乎看到這個問題?如何用FPGA加速卷積神經網絡CNN,恰巧我的碩士畢業設計做的就是在FPGA
    的頭像 發表于 06-29 07:55 ?4859次閱讀
    簡單快捷地用小型Xiliinx <b class='flag-5'>FPGA</b>加速卷積神經網絡<b class='flag-5'>CNN</b>

    KORTIQ公司推出了一款Xilinx FPGACNN加速IP——AIScale

    近日KORTIQ公司推出了一款Xilinx FPGACNN加速IP——AIScale,它能夠利用實現訓練好的CNN網絡,比如行業標準的R
    的頭像 發表于 01-09 08:45 ?1w次閱讀
    KORTIQ公司推出了一款Xilinx <b class='flag-5'>FPGA</b>的<b class='flag-5'>CNN</b>加速<b class='flag-5'>器</b>IP——AIScale

    商湯聯合提出基于FPGA的Winograd算法:改善FPGACNN性能 降低算法復雜度

    商湯科技算法平臺團隊和北京大學高能效實驗室聯合提出一種基于 FPGA 的快速Winograd算法,可以大幅降低算法復雜度,改善 FPGA CNN 性能。
    的頭像 發表于 02-07 11:52 ?9321次閱讀
    商湯聯合提出基于<b class='flag-5'>FPGA</b>的Winograd算法:改善<b class='flag-5'>FPGA</b><b class='flag-5'>上</b>的<b class='flag-5'>CNN</b>性能 降低算法復雜度

    基于CNN分類回歸聯合學習等的左心室檢測方法

    基于CNN分類回歸聯合學習等的左心室檢測方法
    發表于 06-25 11:15 ?33次下載

    電子學報第七期《一種可配置的CNN協加速FPGA實現方法》

    電子學報第七期《一種可配置的CNN協加速FPGA實現方法》
    發表于 11-18 16:31 ?15次下載

    自己動手寫CNN Inference框架之 (一) 開篇

    服務CNN訓練框架很多,如tensorflow、pytorch、keras、caffe等等。該類框架在PC及服務中的顯卡、高性能CP
    發表于 02-07 11:53 ?0次下載
    自己動手寫<b class='flag-5'>CNN</b> Inference框架之 (一) 開篇

    基于FPGA的深度學習CNN加速設計方案

    因為CNN的特有計算模式,通用處理對于CNN實現效率并不高,不能滿足性能要求。 因此,近來已經提出了基于FPGA,GPU甚至ASIC設計的
    發表于 06-14 16:03 ?2389次閱讀
    基于<b class='flag-5'>FPGA</b>的深度學習<b class='flag-5'>CNN</b>加速<b class='flag-5'>器</b>設計方案

    為什么傳統CNN在紋理分類數據集的效果不好?

    作者:TraptiKalra來源:AI公園,編譯:ronghuaiyang導讀本文分析了常見的紋理數據集以及傳統CNN在紋理數據集分類效果不佳的原因。在機器視覺任務中,將紋理分析與深度學習結合
    的頭像 發表于 09-23 14:26 ?873次閱讀
    為什么傳統<b class='flag-5'>CNN</b>在紋理<b class='flag-5'>分類</b>數據集<b class='flag-5'>上</b>的效果不好?

    cnn卷積神經網絡分類有哪些

    卷積神經網絡概述 卷積神經網絡(Convolutional Neural Network,簡稱CNN)是一種深度學習模型,由多層卷積層和池化層堆疊而成。CNN通過卷積操作提取圖像特征,并通過池化操作降低特征維度,從而實現對圖像
    的頭像 發表于 07-03 09:28 ?741次閱讀
    大众百家乐的玩法技巧和规则| 百家乐什么方法容易赢| 百家乐官网小游戏开发| 皇家百家乐出租平台| 百家乐官网博娱乐平台| 八大胜娱乐城| 百家乐技巧看| 百家乐官网正网开户| 百家乐技巧看| 太阳城百家乐杀祖玛| 职业百家乐官网的玩法技巧和规则 | 百家乐官网大天堂| 网上百家乐官网骗人的| 大发888注册送钱| 百家乐斗地主炸金花| 豪杰百家乐游戏| 百家乐官网技巧介绍| 百家乐官网扑克牌耙| 博彩选名门国际| 大发888娱乐城 博狗| 金殿百家乐的玩法技巧和规则| 太阳城百家乐投注| 百家乐官网首选| 百家乐官网赌场占多大概率 | 庞博百家乐的玩法技巧和规则| 百家乐合理的投注法| 百家乐官网打线| 皇冠百家乐官网客户端皇冠| 凤庆县| 88娱乐城注册| bet365备用网址器| 大发888娱乐场出纳| 大发888充值| 威尼斯人娱乐城赌博网| 百家乐游戏试| 百家乐国际娱乐网| 圣安娜百家乐包杀合作| 网上百家乐做假| 赌王百家乐的玩法技巧和规则| 金彩百家乐的玩法技巧和规则 | 24分金|