女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

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

如何為基于FPGA的邊緣設備開發(fā)高性能深度神經(jīng)網(wǎng)絡對象檢測/識別應用

星星科技指導員 ? 來源:嵌入式計算設計 ? 作者:Farhad Fallah ? 2022-11-30 14:12 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文介紹了 DNN 的工作原理,以及為什么 FPGA 在推理任務中越來越受歡迎。它繼續(xù)展示如何使用真實世界的演示在開發(fā)平臺上執(zhí)行 DNN 工作負載。

機器學習是使用算法解析數(shù)據(jù),從中學習,然后做出決策或預測的過程。機器不是準備程序代碼來完成任務,而是使用大量數(shù)據(jù)和算法進行“訓練”,以自行執(zhí)行任務。

使用神經(jīng)網(wǎng)絡(NN)算法正在徹底改變機器學習,這些算法是我們大腦中發(fā)現(xiàn)的生物神經(jīng)元的數(shù)字模型。這些模型包含像大腦神經(jīng)元一樣連接的層。許多應用受益于機器學習,包括圖像分類/識別、大數(shù)據(jù)模式檢測、ADAS、欺詐檢測、食品質(zhì)量保證和財務預測。

作為機器學習的算法,神經(jīng)網(wǎng)絡包括由多層組成的各種拓撲和大小;第一層(“輸入層”),中間層(“隱藏層”)和最后一層(“輸出層”)。隱藏層對輸入執(zhí)行各種專用任務,并將其傳遞到下一層,直到在輸出層生成預測。

一些神經(jīng)網(wǎng)絡相對簡單,只有兩層或三層神經(jīng)元,而所謂的深度神經(jīng)網(wǎng)絡(DNN)可能包含多達1000層。為特定任務確定正確的 NN 拓撲和大小需要實驗并與類似網(wǎng)絡進行比較。

設計高性能機器學習應用需要網(wǎng)絡優(yōu)化(通常使用修剪和量化技術)和計算加速(使用 ASIC 或 FPGA 執(zhí)行)。

在本文中,我們將討論 DNN 的工作原理、為什么 FPGA 在 DNN 推理中越來越受歡迎,并考慮使用 FPGA 開始設計和實現(xiàn)基于深度學習的應用程序所需的工具 [1]。

開發(fā) DNN 應用程序的設計流程

設計 DNN 應用程序的過程分為三個步驟。這些步驟是選擇正確的網(wǎng)絡,訓練網(wǎng)絡,然后將新數(shù)據(jù)應用于訓練的模型進行預測(推理)。

如前所述,DNN 模型中有多個層,每個層都有一個特定的任務。在深度學習中,每一層都旨在提取不同級別的特征。例如,在邊緣檢測神經(jīng)網(wǎng)絡中,第一中間層檢測邊緣和曲線等特征。然后將第一中間層的輸出饋送到第二層,第二層負責檢測更高級別的特征,例如半圓形或正方形。第三層中間層組裝其他層的輸出以創(chuàng)建熟悉的對象,最后一層檢測對象。

在另一個例子中,如果我們開始識別停車標志,訓練好的系統(tǒng)將包括用于檢測八角形、顏色和字母“S”、“T”、“O”和“P”的層,這些順序是孤立的。輸出圖層將負責確定它是否為停車標志。

DNN 學習模型

有四種主要的學習模型:

監(jiān)督:在此模型中,所有訓練數(shù)據(jù)都被標記。NN 將輸入數(shù)據(jù)分類為從訓練數(shù)據(jù)集中學習的不同標簽。

監(jiān)督:在無監(jiān)督學習中,深度學習模型被交給一個數(shù)據(jù)集,而沒有明確的說明如何處理它。訓練數(shù)據(jù)集是沒有特定所需結果或正確答案的示例集合。然后,NN 嘗試通過提取有用的特征并分析其結構來自動查找數(shù)據(jù)中的結構。

半監(jiān)督:這包括一個訓練數(shù)據(jù)集,其中包含標記和未標記的數(shù)據(jù)。當難以從數(shù)據(jù)中提取相關特征時,此方法特別有用,并且標記示例對專家來說是一項耗時的任務。

加固:這是獎勵網(wǎng)絡以獲得結果并提高性能的行為。這是一個迭代過程:反饋的輪次越多,網(wǎng)絡就越好。這種技術對于訓練機器人特別有用,機器人在駕駛自動駕駛汽車或管理倉庫庫存等任務中做出一系列決策。

訓練與推理

在訓練中,未經(jīng)訓練的神經(jīng)網(wǎng)絡模型從現(xiàn)有數(shù)據(jù)中學習新功能。一旦訓練好的模型準備就緒,就會向其提供新數(shù)據(jù)并測量系統(tǒng)的性能。正確檢測圖像的比例稱為推理。

在圖 1 給出的示例(識別貓)中,輸入訓練數(shù)據(jù)集后,DNN 開始調(diào)整權重以查找貓;其中權重是每個神經(jīng)元之間連接強度的量度。

如果結果錯誤,錯誤將被傳播回網(wǎng)絡層以修改權重。這個過程一次又一次地發(fā)生,直到獲得正確的權重,從而每次都得到正確的答案。

如何實現(xiàn)高性能 DNN 應用程序

使用 DNN 進行分類需要一個大數(shù)據(jù)集,這提高了準確性。但是,缺點是它為模型生成許多參數(shù),這增加了計算成本并且需要高內(nèi)存帶寬。

有兩種主要方法可以優(yōu)化 DNN 應用程序。第一種是通過修剪冗余連接、量化權重和融合神經(jīng)網(wǎng)絡來縮小網(wǎng)絡規(guī)模的網(wǎng)絡優(yōu)化。

修剪:這是 DNN 壓縮的一種形式。它減少了與其他神經(jīng)元的突觸連接數(shù)量,從而減少了數(shù)據(jù)總量。通常,刪除接近零的權重。這有助于消除冗余連接,而分類等任務的精度略有下降[2]。

量化:這樣做是為了將神經(jīng)網(wǎng)絡調(diào)整到合理的大小,同時實現(xiàn)高性能的準確性。這對于邊緣應用程序尤其重要,因為內(nèi)存大小和計算數(shù)量必然受到限制。在此類應用中,為了獲得更好的性能,模型參數(shù)保存在本地存儲器中,以避免使用 PCIe 或其他互連接口進行耗時的傳輸。在該方法中,執(zhí)行通過低位寬度數(shù) (INT8) 神經(jīng)網(wǎng)絡近似使用浮點數(shù) (FTP32) 的神經(jīng)網(wǎng)絡的過程。這大大降低了使用神經(jīng)網(wǎng)絡的內(nèi)存需求和計算成本。通過量化模型,我們略微失去了精度和準確性。但是,對于大多數(shù)應用程序,不需要 32 位浮點數(shù)。

優(yōu)化 DNN 的第二種方法是使用 ASIC 或 FPGA 進行計算加速。其中,后一種選擇對機器學習應用程序有很多好處。其中包括:

功率效率:FPGA 提供靈活且可定制的架構,支持僅使用我們需要的計算資源。擁有用于 DNN 的低功耗系統(tǒng)在許多應用中至關重要,例如 ADAS。

可重配置性:與ASIC相比,F(xiàn)PGA被認為是原始的可編程硬件。此功能使它們易于使用并顯著縮短了上市時間。為了趕上日常發(fā)展的機器學習算法,能夠對系統(tǒng)進行重新編程是非常有益的,而不是等待SoC和ASIC的漫長制造時間。

低延遲:與最快的片外存儲器相比,F(xiàn)PGA 內(nèi)部的塊 RAM 提供至少快 50 倍的數(shù)據(jù)傳輸速度。對于機器學習應用程序來說,這是一個游戲規(guī)則的改變者,對于這些應用程序來說,低延遲是必不可少的。

性能可移植性:您 可以 獲得 下一代 FPGA 設備 的 所有 優(yōu)勢, 而 無需 任何 代碼 修改 或 回歸 測試。

靈活性:FPGA 是原始硬件,可以針對任何架構進行配置。沒有固定的架構或數(shù)據(jù)路徑來束縛您。這種靈活性使FPGA能夠進行大規(guī)模并行處理,因為數(shù)據(jù)路徑可以隨時重新配置。這種靈活性還帶來了任意對任意的 I/O 連接功能。這使得 FPGA 能夠連接到任何設備、網(wǎng)絡或存儲設備,而無需主機 CPU

功能安全:FPGA用戶可以在硬件中實現(xiàn)任何安全功能。根據(jù)應用的不同,可以高效地進行編碼。FPGA 廣泛用于航空電子、自動化和安全性,這證明了這些設備的功能安全性,機器學習算法可以從中受益。

成本效益:FPGA是可重新配置的,應用的上市時間相當短。ASIC非常昂貴,如果沒有出現(xiàn)錯誤,制造時間需要6到12個月。這對于機器學習應用程序來說是一個優(yōu)勢,因為成本非常重要,NN 算法每天都在發(fā)展。

現(xiàn)代 FPGA 通常在其結構中提供一組豐富的 DSP 和 BRAM 資源,可用于 NN 處理。但是,與 DNN 的深度和層大小相比,這些資源已不足以進行完整和直接的映射;當然不是像前幾代神經(jīng)網(wǎng)絡加速器那樣經(jīng)常這樣做。即使使用 Zynq MPSoC 等設備(即使是最大的設備也僅限于 2k DSP 切片,BRAM 總大小小于 10 MB),也無法將所有神經(jīng)元和權重直接映射到 FPGA 上。

那么,我們?nèi)绾卫肍PGA的能效、可重編程性、低延遲和其他特性進行深度學習呢?

需要新的 NN 算法和架構修改,以便在內(nèi)存資源有限的平臺(如 FPGA)上實現(xiàn) DNN 的推理。

現(xiàn)代 DNN 將應用程序劃分為較小的塊,由 FPGA 處理。由于FPGA中的片上存儲器不足以存儲網(wǎng)絡所需的所有權重,因此我們只需要存儲當前階段的權重和參數(shù),這些權重和參數(shù)是從外部存儲器(可能是DDR存儲器)加載的。

但是,在FPGA和存儲器之間來回傳輸數(shù)據(jù)將使延遲增加多達50倍。首先想到的是減少內(nèi)存數(shù)據(jù)。除了上面討論的網(wǎng)絡優(yōu)化(修剪和量化)之外,還有:

權重編碼:在FPGA中,可以無條件地選擇編碼格式。可能會有一些準確性損失,但是與數(shù)據(jù)傳輸造成的延遲及其處理的復雜性相比,這可以忽略不計。權重編碼創(chuàng)建了二進制神經(jīng)網(wǎng)絡(BNN),其中權重減少到只有一位。這種方法減少了用于傳輸和存儲的數(shù)據(jù)量,以及計算的復雜性。但是,此方法僅導致具有固定輸入寬度的硬件乘法器的小幅減少。

批處理:在這種方法中,我們使用流水線方法將芯片上已有的權重重用于多個輸入。它還減少了從片外存儲器傳輸?shù)?FPGA 的數(shù)據(jù)量 [5]。

在 FPGA 上設計和實現(xiàn) DNN 應用

讓我們深入了解如何在 FPGA 上實現(xiàn) DNN。在此過程中,我們將利用最合適的商用解決方案來快速跟蹤應用程序的開發(fā)。

例如,Aldec有一個名為TySOM-3A-ZU19EG的嵌入式開發(fā)板。除了各種外設外,它還搭載了賽靈思 Zynq UltraScale+ MPSoC 系列中最大的 FPGA,該器件擁有超過 100 萬個邏輯單元,包括一個運行頻率高達 1.5GHz 的四核 Arm Cortex-A53 處理器

重要的是,就我們的目的而言,這款龐大的 MPSoC 還支持 Xilinx 的深度學習處理單元 (DPU),該單元是該公司為機器學習開發(fā)人員創(chuàng)建的。

DPU 是專用于卷積神經(jīng)網(wǎng)絡 (CNN) 處理的可編程引擎。它旨在加速計算機視覺應用(如圖像/視頻分類和對象跟蹤/偵測)中使用的 DNN 算法的計算工作負載。

DPU有一個特定的指令集,使其能夠有效地與許多CNN一起工作。與常規(guī)處理器一樣,DPU 獲取、解碼和執(zhí)行存儲在 DDR 內(nèi)存中的指令。該單元支持多個CNN,如VGG,ResNet,GoogLeNet,YOLO,SSD,MobileNet,F(xiàn)PN等[3]。

DPU IP 可以作為一個模塊集成到所選 Zynq-7000 SoC 和 Zynq? UltraScale?+ MPSoC 器件的可編程邏輯 (PL) 中,并直接連接到處理系統(tǒng) (PS)。

為了創(chuàng)建 DPU 指令,Xilinx 提供了深度神經(jīng)網(wǎng)絡開發(fā)套件 (DNNDK) 工具包。賽靈思表示:

DNNDK被設計為一個集成框架,旨在簡化和加速深度學習處理器單元(DPU)上的深度學習應用程序開發(fā)和部署。DNNDK 是一個優(yōu)化的推理引擎,它使 DPU 的計算能力變得容易訪問。它為開發(fā)深度學習應用程序提供了最好的簡單性和生產(chǎn)力,涵蓋了神經(jīng)網(wǎng)絡模型壓縮、編程、編譯和運行時啟用的各個階段[4]。

DNNDK 框架包括以下單元:

體面:執(zhí)行修剪和量化以滿足低延遲和高吞吐量

DNNC:將神經(jīng)網(wǎng)絡算法映射到 DPU 指令

DNNAS:將 DPU 指令組裝成 ELF 二進制代碼

N2立方體:充當 DNNDK 應用程序的加載程序,并處理資源分配和 DPU 調(diào)度。其核心組件包括 DPU 驅動程序、DPU 加載器、示蹤器和用于應用程序開發(fā)的編程 API。

分析器:由DPU示蹤劑和DSight組成。D 跟蹤器在 DPU 上運行 NN 時收集原始分析數(shù)據(jù)。DSight 使用此數(shù)據(jù)生成可視化圖表以進行性能分析。

探險家:提供 DPU 的運行模式配置、狀態(tài)檢查和代碼簽名檢查。

DDump:將信息轉儲到 DPU ELF、混合可執(zhí)行文件或 DPU 共享庫中。它加快了用戶的調(diào)試和分析速度。

這些適合圖 2 所示的流程。

pYYBAGOG9HqAH252AAEh9B99PPI789.png

圖2.上述深度神經(jīng)網(wǎng)絡開發(fā)工具包 (DNNK) 框架使開發(fā)人員能夠更輕松地完成基于 FPGA 的機器學習項目的設計過程。

使用 DNNDK 使開發(fā)人員設計基于 FPGA 的機器學習項目的過程變得更加容易;此外,像Aldec的TySOM-3A-ZU19EG板這樣的平臺也提供了一個寶貴的啟動。例如,Aldec 準備了一些針對電路板的示例,包括手勢檢測、行人檢測、分段和交通檢測,這意味著開發(fā)人員不會從一張白紙開始。

讓我們考慮一下今年早些時候在Arm TechCon上展示的一個演示。這是一個使用TySOM-3A-ZU19EG和FMC-ADAS子卡構建的交通檢測演示,該子卡為5倍高速數(shù)據(jù)(HSD)攝像頭、雷達、激光雷達和超聲波傳感器提供接口和外設,這些傳感器是大多數(shù)ADAS應用的感官輸入。

圖 3 顯示了演示的體系結構。FPGA 中實現(xiàn)的兩個 DPU 通過 AXI HP 端口連接到處理單元,以執(zhí)行深度學習推理任務,例如圖像分類、對象檢測和語義分割。DPU 需要指令來實現(xiàn)神經(jīng)網(wǎng)絡,神經(jīng)網(wǎng)絡由 DNNC 和 DNNAS 工具準備。他們還需要訪問輸入視頻和輸出數(shù)據(jù)的內(nèi)存位置。

pYYBAGOG9I2APvpCAAEt-6Z1wMY578.png

圖3.流量檢測演示具有 5 個視頻輸入管道,用于數(shù)據(jù)打包、AXI4 到 AXI 流數(shù)據(jù)傳輸、色彩空間轉換 (YUV2RGB) 以及將視頻發(fā)送到內(nèi)存。

應用程序在應用程序處理單元 (APU) 上運行,通過管理中斷和在單元之間執(zhí)行數(shù)據(jù)傳輸來控制系統(tǒng)。DPU 和用戶應用程序之間的連接是通過 DPU API 和 Linux 驅動程序實現(xiàn)的。有一些功能可以將新圖像/視頻讀取到 DPU、運行處理并將輸出發(fā)送回用戶應用程序。

模型的開發(fā)和訓練是在FPGA之外使用Caffe完成的,而優(yōu)化和編譯是使用作為DNNDK工具包的一部分提供的DECENT和DNNC單元完成的(圖2)。在此設計中,SSD 對象檢測 CNN 用于背景、行人和車輛檢測。

在性能方面,使用四個輸入通道實現(xiàn)了45 fps,展示了使用TySOM-3A-ZU19EG和DNNDK工具包的高性能深度學習應用。

審核編輯:郭婷

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

    關注

    1645

    文章

    22036

    瀏覽量

    618124
  • 機器學習
    +關注

    關注

    66

    文章

    8501

    瀏覽量

    134565
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    BP神經(jīng)網(wǎng)絡深度學習的關系

    BP神經(jīng)網(wǎng)絡深度學習之間存在著密切的關系,以下是對它們之間關系的介紹: 一、BP神經(jīng)網(wǎng)絡的基本概念 BP神經(jīng)網(wǎng)絡,即反向傳播神經(jīng)網(wǎng)絡(Ba
    的頭像 發(fā)表于 02-12 15:15 ?848次閱讀

    BP神經(jīng)網(wǎng)絡在圖像識別中的應用

    BP神經(jīng)網(wǎng)絡在圖像識別中發(fā)揮著重要作用,其多層結構使得網(wǎng)絡能夠學習到復雜的特征表達,適用于處理非線性問題。以下是對BP神經(jīng)網(wǎng)絡在圖像識別中應
    的頭像 發(fā)表于 02-12 15:12 ?661次閱讀

    深度學習入門:簡單神經(jīng)網(wǎng)絡的構建與實現(xiàn)

    深度學習中,神經(jīng)網(wǎng)絡是核心模型。今天我們用 Python 和 NumPy 構建一個簡單的神經(jīng)網(wǎng)絡。 神經(jīng)網(wǎng)絡由多個神經(jīng)元組成,
    的頭像 發(fā)表于 01-23 13:52 ?521次閱讀

    邊緣設備上設計和部署深度神經(jīng)網(wǎng)絡的實用框架

    ???? 機器學習和深度學習應用程序正越來越多地從云端轉移到靠近數(shù)據(jù)源頭的嵌入式設備。隨著邊緣計算市場的快速擴張,多種因素正在推動邊緣人工智能的增長,包括可擴展性、對實時人工智能應用的
    的頭像 發(fā)表于 12-20 11:28 ?882次閱讀

    AI模型部署邊緣設備的奇妙之旅:目標檢測模型

    的是百度的Picodet模型,它是一種基于深度卷積網(wǎng)絡(DNN)的輕量級目標檢測模型,具有非常高的檢測精度,可以在低算力設備進行實時的端到端
    發(fā)表于 12-19 14:33

    卷積神經(jīng)網(wǎng)絡的實現(xiàn)工具與框架

    卷積神經(jīng)網(wǎng)絡因其在圖像和視頻處理任務中的卓越性能而廣受歡迎。隨著深度學習技術的快速發(fā)展,多種實現(xiàn)工具和框架應運而生,為研究人員和開發(fā)者提供了強大的支持。 TensorFlow 概述
    的頭像 發(fā)表于 11-15 15:20 ?664次閱讀

    卷積神經(jīng)網(wǎng)絡與傳統(tǒng)神經(jīng)網(wǎng)絡的比較

    深度學習領域,神經(jīng)網(wǎng)絡模型被廣泛應用于各種任務,如圖像識別、自然語言處理和游戲智能等。其中,卷積神經(jīng)網(wǎng)絡(CNNs)和傳統(tǒng)神經(jīng)網(wǎng)絡是兩種常
    的頭像 發(fā)表于 11-15 14:53 ?1854次閱讀

    深度學習中的卷積神經(jīng)網(wǎng)絡模型

    深度學習近年來在多個領域取得了顯著的進展,尤其是在圖像識別、語音識別和自然語言處理等方面。卷積神經(jīng)網(wǎng)絡作為深度學習的一個分支,因其在圖像處理
    的頭像 發(fā)表于 11-15 14:52 ?839次閱讀

    LSTM神經(jīng)網(wǎng)絡在語音識別中的應用實例

    語音識別技術是人工智能領域的一個重要分支,它使計算機能夠理解和處理人類語言。隨著深度學習技術的發(fā)展,特別是長短期記憶(LSTM)神經(jīng)網(wǎng)絡的引入,語音識別的準確性和效率得到了顯著提升。
    的頭像 發(fā)表于 11-13 10:03 ?1843次閱讀

    關于卷積神經(jīng)網(wǎng)絡,這些概念你厘清了么~

    許多種類型,但本文將只關注卷積神經(jīng)網(wǎng)絡(CNN),其主要應用領域是對輸入數(shù)據(jù)的模式識別對象分類。CNN是一種用于深度學習的 人工神經(jīng)網(wǎng)絡
    發(fā)表于 10-24 13:56

    【飛凌嵌入式OK3576-C開發(fā)板體驗】RKNPU圖像識別測試

    RKNPU在深度學習運算能力上有了顯著的提升。 2.3、技術特點 高性能 :RKNPU采用專門的硬件架構和優(yōu)化算法,能夠實現(xiàn)高效的神經(jīng)網(wǎng)絡計算,滿足復雜場景下的實時處理需求。 低功耗 :RKNPU在提供
    發(fā)表于 10-10 09:27

    FPGA深度神經(jīng)網(wǎng)絡中的應用

    、低功耗等特點,逐漸成為深度神經(jīng)網(wǎng)絡邊緣計算和設備端推理的重要硬件平臺。本文將詳細探討FPGA深度
    的頭像 發(fā)表于 07-24 10:42 ?1194次閱讀

    分享幾個用FPGA實現(xiàn)的小型神經(jīng)網(wǎng)絡

    今天我們分享幾個用FPGA實現(xiàn)的小型神經(jīng)網(wǎng)絡,側重應用。
    的頭像 發(fā)表于 07-24 09:30 ?1870次閱讀
    分享幾個用<b class='flag-5'>FPGA</b>實現(xiàn)的小型<b class='flag-5'>神經(jīng)網(wǎng)絡</b>

    深度神經(jīng)網(wǎng)絡模型量化的基本方法

    深度神經(jīng)網(wǎng)絡模型量化是深度學習領域中的一種重要優(yōu)化技術,旨在通過減少模型參數(shù)的精度(即從高精度浮點數(shù)如32位浮點數(shù)FP32降低到低精度整數(shù)如8位整數(shù)INT8或更低)來降低模型的計算和存儲需求,同時
    的頭像 發(fā)表于 07-15 11:26 ?1320次閱讀

    深度神經(jīng)網(wǎng)絡在雷達系統(tǒng)中的應用

    深度神經(jīng)網(wǎng)絡(Deep Neural Networks,DNN)在雷達系統(tǒng)中的應用近年來取得了顯著進展,為雷達信號處理、目標檢測、跟蹤以及識別等領域帶來了革命性的變化。以下將詳細探討
    的頭像 發(fā)表于 07-15 11:09 ?1557次閱讀