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

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

從C 到 matlab 到 FPGA,如何實(shí)現(xiàn)CNN的項(xiàng)目

FPGA攻城獅之家 ? 來(lái)源:FPGA攻城獅之家 ? 作者:FPGA攻城獅之家 ? 2022-03-15 17:13 ? 次閱讀

經(jīng)過(guò)了前面的開胃菜,項(xiàng)目正式開始。一步步講解這個(gè)模型怎么玩起來(lái)的。從C 到 matlabFPGA ,三個(gè)平臺(tái)聯(lián)合起來(lái)完成這個(gè) 由 RTL 實(shí)現(xiàn) CNN 的項(xiàng)目。

第一步,講解深度學(xué)習(xí)模型在C中是怎么實(shí)現(xiàn)的,也就是梳理數(shù)據(jù)流怎么運(yùn)算的。

第二步,講解這個(gè)數(shù)據(jù)怎么使用,如何去一步步驗(yàn)證自己的設(shè)計(jì)。

第三步,根據(jù)前面的理解,在FPGA中如何去設(shè)計(jì)自己的代碼。

首先,C的源碼前面的文章中已經(jīng)公開了,第一步當(dāng)然是理解深度學(xué)習(xí)模型在C中是怎么實(shí)現(xiàn)的。

這個(gè)深度學(xué)習(xí)的模型 LeNet5 實(shí)現(xiàn)的功能是 MNIST 數(shù)據(jù)識(shí)別。MNIST數(shù)據(jù)集是一個(gè)手寫數(shù)字的圖片集,然后被制作成了一個(gè)特殊的文件格式 —— 已經(jīng)不是圖片了,變成了這么一個(gè)東西:

820b645e-a3eb-11ec-952b-dac502259ad0.png

網(wǎng)站上下載下來(lái)的是一個(gè)gz壓縮文件,解壓之后就是一個(gè)idx3-ubyte格式的文件。它包含了6w張用來(lái)做網(wǎng)絡(luò)模型訓(xùn)練的圖片,和1w張用來(lái)測(cè)試網(wǎng)絡(luò)模型的圖片。每張圖片再搭配一個(gè)標(biāo)簽 —— 表明它是數(shù)據(jù)幾。所以整個(gè)數(shù)據(jù)集就是 7w張圖片 加 7w個(gè)標(biāo)簽。

不過(guò)你可以通過(guò)python輕松導(dǎo)出來(lái),可以看到具體的圖片和標(biāo)簽。解釋這么多也夠用了,有興趣的朋友可以百度一下 MNIST ,比如下圖,就是一個(gè)博主從數(shù)據(jù)集里扒出來(lái)的圖。

8219ba54-a3eb-11ec-952b-dac502259ad0.png

先理解了數(shù)據(jù)集,再看看 C語(yǔ)言源碼。第一步先分別導(dǎo)入訓(xùn)練數(shù)據(jù)集和標(biāo)簽,再導(dǎo)入里測(cè)試數(shù)據(jù)集和標(biāo)簽,然后開始 load 模型 —— 第一次運(yùn)行模型為空,于是對(duì)模型進(jìn)行初始化。細(xì)心一點(diǎn)往下看這個(gè)初始化過(guò)程會(huì)覺得很有特色 —— 刻意讓數(shù)據(jù)很隨機(jī),讓它們都不相同是有好處,具體什么好處可以去看看吳恩達(dá)的視頻。(我看了,云里霧里的還是不懂,所以也解釋不清楚)

822e6b70-a3eb-11ec-952b-dac502259ad0.png

后面就是訓(xùn)練和測(cè)試了,for是我后面添加的,可以讓它訓(xùn)練很多次,提升精度。下面就是測(cè)試和打印,然后保存模型,釋放空間。主程序完畢。

82464308-a3eb-11ec-952b-dac502259ad0.png

拿到開源代碼,運(yùn)行一下,結(jié)果就是這樣子的

8260271e-a3eb-11ec-952b-dac502259ad0.png

82749244-a3eb-11ec-952b-dac502259ad0.png

8288b31e-a3eb-11ec-952b-dac502259ad0.png

我就是在這個(gè)代碼基礎(chǔ)上,理解LeNet5的結(jié)構(gòu),然后量化。量化后再驗(yàn)證精度,然后導(dǎo)出模型,導(dǎo)出計(jì)算的中間數(shù)據(jù)。這個(gè) C 代碼就算物盡其用了。

有人覺得難懂?沒關(guān)系,對(duì)于這個(gè)項(xiàng)目而言,我已經(jīng)把C程序簡(jiǎn)化成了一張圖,你可以忽略上述所有文字和程序,記住這張圖就行。圖的解釋可以看QQ群中的文檔,后面我還會(huì)詳細(xì)講解這張圖的,以及圖中用到的數(shù)據(jù)。

82b2bed4-a3eb-11ec-952b-dac502259ad0.png

82c7e50c-a3eb-11ec-952b-dac502259ad0.png

原文標(biāo)題:LeNet5 MNIST 的 FPGA實(shí)現(xiàn) 3

文章出處:【微信公眾號(hào):FPGA攻城獅之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

審核編輯:彭菁
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1630

    文章

    21796

    瀏覽量

    606010
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    7139

    瀏覽量

    89578
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4825

    瀏覽量

    69049
  • cnn
    cnn
    +關(guān)注

    關(guān)注

    3

    文章

    353

    瀏覽量

    22335

原文標(biāo)題:LeNet5 MNIST 的 FPGA實(shí)現(xiàn) 3

文章出處:【微信號(hào):gh_99a29eb83412,微信公眾號(hào):FPGA攻城獅之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于FPGACNN加速項(xiàng)目案例解析

    使用 C 語(yǔ)言的OpenCL 2a并行編程擴(kuò)展來(lái)補(bǔ)充基于 FPGACNN 加速應(yīng)用程序的開發(fā)。適用于卷積神經(jīng)網(wǎng)絡(luò)的 FPGA 器件的一個(gè)示例是英特爾可編程解決方案集團(tuán) (PSG)
    發(fā)表于 08-02 15:13 ?2916次閱讀
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>CNN</b>加速<b class='flag-5'>項(xiàng)目</b>案例解析

    FPGA如何入門高手?

    本文首先介紹了FPGA的特點(diǎn)與FPGA芯片結(jié)構(gòu),其次分析了FPGA與ASIC及CPLD對(duì)比,最后介紹了FPGA基礎(chǔ)入門高手相關(guān)知識(shí)與
    發(fā)表于 05-30 08:39 ?3.7w次閱讀
    <b class='flag-5'>FPGA</b>如何<b class='flag-5'>從</b>入門<b class='flag-5'>到</b>高手?

    Matlab經(jīng)典教程——入門精通

    Matlab經(jīng)典教程——入門精通
    發(fā)表于 08-19 09:56

    Matlab_Simulink_模型代碼實(shí)現(xiàn) matlab

    Matlab_Simulink_模型代碼實(shí)現(xiàn) matlab
    發(fā)表于 10-04 08:36

    TF之CNNCNN實(shí)現(xiàn)mnist數(shù)據(jù)集預(yù)測(cè)

    TF之CNNCNN實(shí)現(xiàn)mnist數(shù)據(jù)集預(yù)測(cè) 96%采用placeholder用法+2層C及其max_pool法+隱藏層dropout法+輸出層softmax法+目標(biāo)函數(shù)cross_e
    發(fā)表于 12-19 17:02

    FPGAFPGA如何實(shí)現(xiàn)通信

    ,在接收器板上我們有XC7K410T-1FBG900C我們的要求如下我們想在這兩個(gè)FPGA之間傳輸數(shù)據(jù)。數(shù)據(jù)速率可以每秒幾位每秒5千兆位。我們應(yīng)該能夠在兩個(gè)
    發(fā)表于 05-20 13:14

    FPGA入門精通(1) - 前序

    畢業(yè)后,從一個(gè)嵌入式硬件狗轉(zhuǎn)做FPGA工程師,從中兜兜轉(zhuǎn)轉(zhuǎn)繞了不少?gòu)澛?,為了給后人避坑,所以今天開始寫有關(guān)FPGA入門精通的教程吧,這也算是給我國(guó)集成電路的發(fā)展做出微薄的貢獻(xiàn)吧。
    發(fā)表于 06-23 23:52

    如何移植一個(gè)CNN神經(jīng)網(wǎng)絡(luò)FPGA中?

    訓(xùn)練一個(gè)神經(jīng)網(wǎng)絡(luò)并移植Lattice FPGA上,通常需要開發(fā)人員既要懂軟件又要懂?dāng)?shù)字電路設(shè)計(jì),是個(gè)不容易的事。好在FPGA廠商為我們提供了許多工具和IP,我們可以在這些工具和IP的基礎(chǔ)上做
    發(fā)表于 11-26 07:46

    MCUFPGA

    MCUFPGA
    發(fā)表于 02-02 07:36

    FPGA 22年配角主角

    最初,FPGA 只是用于膠合邏輯,膠合邏輯算法邏輯再到數(shù)字信號(hào)處理、高速串行收發(fā)器和嵌入式處理器,FPGA 真正地配角變成了主角。
    發(fā)表于 11-30 16:25 ?17次下載

    matlab來(lái)實(shí)現(xiàn)fpga功能的設(shè)計(jì)

    matlab來(lái)實(shí)現(xiàn)fpga功能的設(shè)計(jì) 摘要:System Generator for DSP是Xilinx公司開發(fā)的基于Matlab的DSP開發(fā)工具?熗?時(shí)也是一個(gè)基于
    發(fā)表于 01-16 18:10 ?1.1w次閱讀
    用<b class='flag-5'>matlab</b>來(lái)<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>fpga</b>功能的設(shè)計(jì)

    Matlab_Simulink模型代碼實(shí)現(xiàn)

    Matlab_Simulink模型代碼實(shí)現(xiàn),感興趣的小伙伴們可以看看。
    發(fā)表于 08-09 17:33 ?0次下載

    C游戲編程入門精通

    C游戲編程入門精通
    發(fā)表于 03-31 15:56 ?0次下載

    MATLAB進(jìn)階》程序與數(shù)據(jù)資料下載

    MATLAB進(jìn)階》程序與數(shù)據(jù)
    發(fā)表于 01-13 10:09 ?18次下載

    MATLAB實(shí)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)CNN的源代碼

    MATLAB實(shí)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)CNN的源代碼
    發(fā)表于 04-21 10:15 ?16次下載
    三门县| 百家乐透明发牌靴| 和记娱乐| 网上百家乐真的假的| 白朗县| 二八杠小游戏| 百家乐官网园云鼎赌场娱乐网规则| 大发888官网 平台| 杨公风水24山分金| 乌苏市| 赌片百家乐的玩法技巧和规则| 温州市百家乐官网鞋业| 德州扑克官方下载| 百家乐官网翻天百度影音| 泸西县| 圣保罗百家乐的玩法技巧和规则| 百家乐官网pc| 娱乐城去澳门| 娱网百家乐补丁| 百家乐官网游戏教程| 沈阳盛京棋牌官网| 百家乐视频双扣游戏| 棋牌百家乐官网怎么玩| 威尼斯人娱乐城最新地址| 实战百家乐官网十大取胜原因百分百战胜百家乐官网不买币不吹牛只你能做到按我说的.百家乐官网基本规则 | 大发888游戏场下载| 做生意的风水摆件| 百家乐官网的庄闲概率| 百家乐游戏种类| 喜来登百家乐官网的玩法技巧和规则| 澳博娱乐| 福布斯百家乐的玩法技巧和规则 | 德州扑克筹码定做| 百家乐看盘技巧| 百家乐官网扎金花斗地主| 十六蒲娱乐城| 欢乐谷百家乐的玩法技巧和规则 | 信誉百家乐平台| 百家乐官网楼梯缆大全| 优博信誉| 威尼斯人娱乐城老品牌lm0|