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

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

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

3個DNN的項目介紹

FPGA技術(shù)江湖 ? 來源:FPGA技術(shù)江湖 ? 作者:FPGA技術(shù)江湖 ? 2022-06-16 09:27 ? 次閱讀

介紹

深度神經(jīng)網(wǎng)絡(luò) (DNN) 是一種人工神經(jīng)網(wǎng)絡(luò)(ANN),在輸入層和輸出層之間具有多層。有不同類型的神經(jīng)網(wǎng)絡(luò),但它們基本由相同的組件組成:神經(jīng)元、突觸、權(quán)重、偏差和函數(shù)。這些組件的功能類似于人類大腦,可以像任何其他 ML 算法一樣進(jìn)行訓(xùn)練。

3241cbd6-ed13-11ec-ba43-dac502259ad0.png

例如,經(jīng)過訓(xùn)練以識別狗品種的 DNN 將遍歷給定的圖像并計算圖像中的狗是某個品種的概率。用戶可以查看結(jié)果并選擇網(wǎng)絡(luò)應(yīng)該顯示哪些概率(超過某個閾值等)并返回建議的標(biāo)簽。每個數(shù)學(xué)操作都被認(rèn)為是一個層,復(fù)雜的 DNN 有很多層,因此被稱為“深度”網(wǎng)絡(luò)。

324f329e-ed13-11ec-ba43-dac502259ad0.png

關(guān)于DNN、ANN、CNN區(qū)別,請看下圖:

326b7cf6-ed13-11ec-ba43-dac502259ad0.png

https://blog.csdn.net/lff1208/article/details/77717149

IBM_AccDNN

https://github.com/IBM/AccDNN

AccDNN(深度神經(jīng)網(wǎng)絡(luò)加速器核心編譯器)又名;DNNBuilder

項目介紹

在這個項目中,我們提出了一種新穎的解決方案,可以自動將經(jīng)過 Caffe 訓(xùn)練的深度神經(jīng)網(wǎng)絡(luò)轉(zhuǎn)換為 FPGA RTL 級別的實現(xiàn),無需任何編程工作,并為用戶的識別任務(wù)提供統(tǒng)一的 API。

因此,沒有任何 FPGA 編程經(jīng)驗的開發(fā)人員可以將他們的 FPGA 加速深度學(xué)習(xí)服務(wù)部署在數(shù)據(jù)中心或邊緣設(shè)備中,僅提供他們經(jīng)過訓(xùn)練的 Caffe 模型。該作品發(fā)表在 ICCAD'18 上,并獲得了前端最佳論文獎。了解更多設(shè)計細(xì)節(jié)。請參考我們的論文(https://docs.wixstatic.com/ugd/c50250_77e06b7f02b44eacb76c05e8fbe01e08.pdf)。

轉(zhuǎn)換過程

轉(zhuǎn)換包括三個階段:

首先對 Caffe 網(wǎng)絡(luò)文件進(jìn)行解析,得到網(wǎng)絡(luò)結(jié)構(gòu)。我們估計每一層的工作量以確定在 FPFA 資源約束下的并行度。

該網(wǎng)絡(luò)中定義的每一層通過在庫中實例化相應(yīng)的神經(jīng)層來生成一個定制的 Verilog 模塊。頂層模塊也是根據(jù)net文件中定義的層順序?qū)⑦@些自定義實例連接在一起生成的,并且在這個階段也生成了權(quán)重所需的片上內(nèi)存。

綜合生成的源文件、布線和布局,生成可執(zhí)行的 FPGA 位文件。

327d5520-ed13-11ec-ba43-dac502259ad0.png

AccDNN 缺點(diǎn)

僅支持 Caffe 框架訓(xùn)練的模型。

僅支持卷積層、最大池化層、全連接層和批量歸一化層。

Caffe .prototxt 中定義的網(wǎng)絡(luò)中卷積層和全連接層的總數(shù)應(yīng)少于 15 層

DNN-Hardware-Accelerator

https://github.com/ryaanluke/DNN-Hardware-Accelerator

https://github.com/gwatcha/dnn_accelerator

介紹

在本實驗中,將以嵌入式 Nios II 系統(tǒng)為核心構(gòu)建深度神經(jīng)網(wǎng)絡(luò)加速器。在本項目中還將學(xué)習(xí)如何與片外 SDRAM 連接,以及如何使用 PLL 生成具有特定屬性的時鐘。

由于整個系統(tǒng)比我們之前構(gòu)建的系統(tǒng)更復(fù)雜,因此在將設(shè)計的所有部分連接在一起之前,編寫大量的測試單元并仔細(xì)調(diào)試將變得尤為重要。

深度神經(jīng)網(wǎng)絡(luò)

我們將使用一種稱為多層感知器 (MLP) 的神經(jīng)網(wǎng)絡(luò)對 MNIST 手寫數(shù)字?jǐn)?shù)據(jù)集進(jìn)行分類。也就是說,我們的 MLP 將以 28×28 像素的灰度圖像作為輸入,并確定該圖像對應(yīng)的數(shù)字 (0..9)。

MLP 由幾個線性層組成,它們首先將前一層的輸出乘以權(quán)重矩陣,并為每個輸出添加一個恒定的“偏差”值,然后應(yīng)用非線性激活函數(shù)來獲得當(dāng)前層的輸出(稱為激活)。我們的 MLP 將有一個 784 像素的輸入(28×28 像素的圖像)、兩個 1000 個神經(jīng)元的隱藏層和一個 10 個神經(jīng)元的輸出層;具有最高值的輸出神經(jīng)元將告訴我們網(wǎng)絡(luò)認(rèn)為它看到了哪個數(shù)字。對于激活函數(shù),我們將使用整流線性單元 (ReLU),它將所有負(fù)數(shù)映射到 0,將所有正數(shù)映射到自身。

在推理過程中,每一層計算a' = ReLU( W · a + b ),其中W是權(quán)重矩陣,a是前一層的激活向量,b是偏置向量,a'是當(dāng)前層的激活向量。

不要被神經(jīng)網(wǎng)絡(luò)等花哨的術(shù)語嚇倒——你實際上是在構(gòu)建一個加速器來進(jìn)行矩陣向量乘法。這里的大部分挑戰(zhàn)來自與片外 SDRAM 存儲器的交互以及正確處理諸如waitrequest和readdatavalid 之類的信號。

不需要知道這些網(wǎng)絡(luò)是如何訓(xùn)練的,因為我們已經(jīng)為您訓(xùn)練了網(wǎng)絡(luò)并預(yù)先格式化了圖像(請參閱data文件夾的內(nèi)容和測試輸入列表)。但是,如果好奇,可以查看scripts/train.py我們是如何訓(xùn)練 MLP 的。

328a56a8-ed13-11ec-ba43-dac502259ad0.png

關(guān)于該項目的一些補(bǔ)充說明請查看下面的PDF:

https://github.com/ryaanluke/DNN-Hardware-Accelerator/blob/main/Deep%20Neural%20Networks%20on%20FPGA.pdf

DNN-accelerator-on-zynq

https://github.com/joycenerd/DNN-accelerator-on-zynq

https://github.com/karanam1997/Dnnweaver-Zed-board-/tree/master/DNNWeaver_original

https://github.com/anonsum/DNNWeaver_Simulations

設(shè)計要求:

329b95a8-ed13-11ec-ba43-dac502259ad0.png

整個系統(tǒng)框圖如下:

32adb51c-ed13-11ec-ba43-dac502259ad0.png

相關(guān)的設(shè)計文檔:

https://github.com/joycenerd/DNN-accelerator-on-zynq/blob/master/2019DD_lab12Finalv4.pdf

Handwritting-number-distinguishing-with-DNN-by-Nexys-4-DDR-in-Verilog-HDL

https://github.com/MaxMorning/Handwritting-number-distinguishing-with-DNN-by-Nexys-4-DDR-in-Verilog-HDL

用 Verilog HDL 實現(xiàn) DNN 區(qū)分手寫數(shù)字,在Nexys 4 DDR 上運(yùn)行。

32bd3b18-ed13-11ec-ba43-dac502259ad0.png

總結(jié)

今天介紹了3個DNN的項目,主要是DNN復(fù)雜度較TPU或者CNN高了幾個臺階,所以用它來直接對FPGA進(jìn)行移植難度很大,還是只建議對第一個IBM項目進(jìn)行研究,其他在ZYNQ上進(jìn)行數(shù)字識別適合實現(xiàn),其他都不怎么推薦。

關(guān)于DNN或者CNN也介紹了幾十個項目了,這些只適合學(xué)習(xí)研究,并不適合拿來商用,所以后臺噴我的小伙伴要求也不要太高,這些開源的項目能直接商用的少之又少,大部分項目只適合學(xué)習(xí)。還有一些項目是學(xué)生做的,所以你們也不必噴:說是拿一些學(xué)生做的項目能干什么,我這里只想說,這些項目至少能給您一些參考,什么事情總比從零開始好,或者讓你們了解一些同齡人在學(xué)校里在干什么,最后,這些項目您又看不上您開源幾個出來~

審核編輯 :李倩

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

    關(guān)注

    42

    文章

    4772

    瀏覽量

    100809
  • dnn
    dnn
    +關(guān)注

    關(guān)注

    0

    文章

    60

    瀏覽量

    9058

原文標(biāo)題:?優(yōu)秀的 Verilog/FPGA開源項目- 深度神經(jīng)網(wǎng)絡(luò) (DNN)

文章出處:【微信號:HXSLH1010101010,微信公眾號:FPGA技術(shù)江湖】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    充電樁3C認(rèn)證有哪些測試項目

    充電樁3C認(rèn)證的測試項目是為了確保產(chǎn)品在電氣安全、電磁兼容性(EMC)、環(huán)境適應(yīng)性等方面達(dá)到國家標(biāo)準(zhǔn)的要求。以下是基于現(xiàn)有資料整理的一些主要測試項目,這些測試旨在保障充電樁的安全性和可靠性:
    的頭像 發(fā)表于 12-25 17:13 ?168次閱讀

    9開關(guān)電源電路設(shè)計項目

    今天給大家分享開關(guān)電源電路設(shè)計項目,主要是以下?9 開關(guān)電源電路設(shè)計項目: 1、三段式鉛酸電池充電器控制電路 2、單顆 TL431 限流恒壓控制方法 3、一種低壓氙氣燈電源啟動電路
    的頭像 發(fā)表于 11-29 11:18 ?540次閱讀
    9<b class='flag-5'>個</b>開關(guān)電源電路設(shè)計<b class='flag-5'>項目</b>

    如何將布局受限的從屬entity應(yīng)用到另一項目

    為了方便大家理解,以下將準(zhǔn)備兩項目,分別為 [項目A] 和 [項目B]。我們需要在 [項目B] 中實現(xiàn) [
    的頭像 發(fā)表于 08-22 16:42 ?542次閱讀
    如何將布局受限的從屬entity應(yīng)用到另一<b class='flag-5'>個</b><b class='flag-5'>項目</b>

    重裝PSoC Creator后無法打開CCG3PA項目,為什么?

    我有一舊的 CCG3PA 項目 (CYPD3171),正在嘗試重新編譯。 我用新筆記本電腦安裝了 PSoC Creator(與舊筆記本電腦上的一樣),但軟件提示項目已過期,需要更新。
    發(fā)表于 07-17 07:03

    深度神經(jīng)網(wǎng)絡(luò)(DNN)架構(gòu)解析與優(yōu)化策略

    深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Network, DNN)作為機(jī)器學(xué)習(xí)領(lǐng)域中的一種重要技術(shù),以其強(qiáng)大的特征學(xué)習(xí)能力和非線性建模能力,在多個領(lǐng)域取得了顯著成果。DNN的核心在于其多層結(jié)構(gòu),通過
    的頭像 發(fā)表于 07-09 11:00 ?1913次閱讀

    BP神經(jīng)網(wǎng)絡(luò)屬于DNN

    深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Network,簡稱DNN)則是指具有多個隱藏層的神經(jīng)網(wǎng)絡(luò),可以處理復(fù)雜的數(shù)據(jù)和任務(wù)。那么,BP神經(jīng)網(wǎng)絡(luò)是否屬于DNN呢? 神經(jīng)網(wǎng)絡(luò)是一種模擬人腦神經(jīng)元網(wǎng)絡(luò)的計算
    的頭像 發(fā)表于 07-03 10:18 ?795次閱讀

    第0章_項目方案介紹

    本課程來自一真實項目:多個氣體傳感器的管理。由于氣體傳感器比較昂貴,本課程里使用普通傳感器來做實驗。
    的頭像 發(fā)表于 06-29 14:02 ?396次閱讀
    第0章_<b class='flag-5'>項目</b>方案<b class='flag-5'>介紹</b>

    分享6實用的ESP32-S3物聯(lián)網(wǎng)項目:從智能設(shè)備到安全創(chuàng)新

    開發(fā)人員友好特性和超低功耗,使其在可穿戴設(shè)備到智能家居等領(lǐng)域備受推崇。本篇文章分享了6ESP32-S3 DIY項目,例如智能手表、植物生長監(jiān)測系統(tǒng)和使用行空板和FireBeetle 2 ESP32S
    的頭像 發(fā)表于 05-17 10:15 ?794次閱讀

    自制一3D打印的移動終端——T3rminal

    T3rminal是我過去幾個月一直在努力開發(fā)的一CyberDeck,并希望將其開源。 我從不同設(shè)備如Decktility、YARH和其他項目中獲得了靈感。 你可以在我的Github上協(xié)助并關(guān)注該
    的頭像 發(fā)表于 05-09 10:38 ?532次閱讀
    自制一<b class='flag-5'>個</b><b class='flag-5'>3</b>D打印的移動終端——T<b class='flag-5'>3</b>rminal

    基于FPGA進(jìn)行DNN設(shè)計的經(jīng)驗總結(jié)

    DNN中應(yīng)用最廣泛的是CNN和RNN,CNN是一種卷積網(wǎng)絡(luò),在圖片識別分類中用的較多,RNN可以處理時間序列的信息,比如視頻識別和語音識別。
    發(fā)表于 04-07 10:23 ?591次閱讀
    基于FPGA進(jìn)行<b class='flag-5'>DNN</b>設(shè)計的經(jīng)驗總結(jié)

    【Longan Pi 3H 開發(fā)板試用連載體驗】基于 Longan Pi 3H 開發(fā)板完成智能家居控制小型項目

    及4銅柱 與樹莓派3B來個對比,尺寸差不多只有樹莓派3B的三分之一,性能可是提升不少 詳細(xì)板卡介紹可以看官網(wǎng)板卡介紹 二、開機(jī) 手頭上有一
    發(fā)表于 04-02 22:37

    Eclipse EZ-USB1.3.5為CX3創(chuàng)建一新的配置項目時報向?qū)o法啟動的原因?怎么解決?

    當(dāng)嘗試在最新的 Eclipse EZ-USB 套件 1.3.5 集成開發(fā)環(huán)境中為 CX3 創(chuàng)建一新的配置項目時,該工具報告了以下錯誤: 所選向?qū)o法啟動。 插件“com.CYPRESS
    發(fā)表于 03-04 07:45

    基于OpenCV DNN實現(xiàn)YOLOv8的模型部署與推理演示

    基于OpenCV DNN實現(xiàn)YOLOv8推理的好處就是一套代碼就可以部署在Windows10系統(tǒng)、烏班圖系統(tǒng)、Jetson的Jetpack系統(tǒng)
    的頭像 發(fā)表于 03-01 15:52 ?1653次閱讀
    基于OpenCV <b class='flag-5'>DNN</b>實現(xiàn)YOLOv8的模型部署與推理演示

    重慶公布SiC重大項目 三安2工廠即將點(diǎn)亮投產(chǎn)

    昨天,“行家說三代半”報道了三安在重慶的2碳化硅項目進(jìn)展(.點(diǎn)這里.),今天,三安又公布了最新的項目消息
    的頭像 發(fā)表于 02-21 09:51 ?4006次閱讀
    重慶公布SiC重大<b class='flag-5'>項目</b> 三安2<b class='flag-5'>個</b>工廠即將點(diǎn)亮投產(chǎn)

    關(guān)于FPGA的開源項目介紹

    Hello,大家好,之前給大家分享了大約一百多個關(guān)于FPGA的開源項目,涉及PCIe、網(wǎng)絡(luò)、RISC-V、視頻編碼等等,這次給大家?guī)淼氖遣豢菰锏膴蕵?b class='flag-5'>項目,主要偏向老的游戲內(nèi)核使用FPGA進(jìn)行硬解,涉及的內(nèi)核數(shù)不勝數(shù),主要目標(biāo)是高的可實現(xiàn)性及復(fù)現(xiàn)性。
    的頭像 發(fā)表于 01-10 10:54 ?1475次閱讀
    關(guān)于FPGA的開源<b class='flag-5'>項目</b><b class='flag-5'>介紹</b>