国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

通過FPGA實現深度神經網絡的解決方案

電子設計 ? 來源:郭婷 ? 作者:電子設計 ? 2019-03-19 08:58 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

隨著“Alexa”、“Hey Siri”或“Hi Google”等多個產品成功響應關鍵詞,關鍵字檢測 (KWS) 已成為越來越多嵌入式應用的一項重要要求。雖然典型的先進 KWS 解決方案依賴于復雜的卷積神經網絡 (CNN) 和其他深度神經網絡 (DNN) 機器學習算法,但資源受限型產品的開發人員可以使用二值神經網絡 (BNN) 獲得所需的準確結果。

本文介紹了將 KWS 添加到可穿戴設備和其他低功耗物聯網設備的優勢,以及所面臨的各項挑戰。在描述 BNN 架構及其為何適用于資源受限型 KWS 應用之后,本文還介紹了一種通過低功耗 FPGA 實現 BNN 的可用解決方案。該解決方案將用于展示如何利用一小部分 CNN 資源要求,為低功耗 KWS 應用實現 CNN 的高精度

KWS 的起源和演進

KWS 也被也稱為關鍵詞檢測,多年來一直應用于信息處理應用。例如,在文檔處理中,KWS 提供了一種更有效的光學字符識別替代方法,可為大規模數字化文檔編制索引。隨著聲控服務在智能手機、手表、家用產品等設備中變得可用,基于語音的 KWS 方法在產品開發中迅速獲得關注。在這些產品中,“始終運行”功能允許產品連續處理音頻輸入,尋找可激活基于語音的用戶界面的關鍵字。

諸如 XMOS VocalFusion 4-Mic 套件之類板級產品可與 Amazon 語音服務完全集成,提供了一種即用型解決方案,可在許多應用中添加語音助手服務。但對于功率預算有限的可穿戴設備或其他電池供電型產品,開發人員很大程度上只能去尋找自己的 KWS 解決方案。

過去,實現自定義 KWS 機制要求開發人員不僅在音頻工程方面具有深厚背景,而且在時間模式識別的統計方法應用方面也具有同樣的要求。過去幾十年來,基于隱馬爾可夫模型和相關算法的統計方法為字識別解決方案提供了基礎。

最近,像卷積神經網絡 (CNN) 這樣的 DNN 架構已經開始用作許多 KWS 應用的基礎。

滿足深度神經網絡 (DNN) 要求

DNN 架構基于多層神經元,這些神經元經過訓練,可從輸入數據中提取特征,并預測輸入數據對應于訓練期間所用類之一的概率1。特別是得益于這些算法實現的高識別精度,CNN 架構已成為圖像識別的卓越方法。

同樣,不同類型的 CNN 架構已經在包括 KWS 實現在內的語音處理中取得了成功。“傳統”CNN 架構的難點在于其尺寸和處理要求。例如,在圖像處理中,CNN 模型已經增長到數百兆字節的大小。大存儲容量加上廣泛的數值計算要求,對模型處理平臺提出了很高的要求。

用于實現傳統 CNN 架構的方法提供的幫助很少。CNN 和其他 DNN 算法通過對網絡中每層的每個神經元執行通用矩陣乘法 (GEMM) 運算,實現其精度。在訓練期間,當模型可能需要處理數百萬個標記的特征向量以獲得預期結果時,GEMM 和其他矩陣計算的數量可以很容易地達到數十億,從而推動了圖形處理單元 (GPU) 在此模型開發階段加速處理的需求。當部署模型以在應用中執行推理時,人們希望維持低延時和高精度,這繼續決定了在要求最為嚴苛的應用中對 GPU 的需求。

在具有較為適中的推理要求的應用中,開發人員可以通過犧牲延時和精度來部署傳統 CNN,即使在 Raspberry Pi Foundation Raspberry Pi 3 等通用平臺上,或基于 Arm? Cortex?-M7 的 MCU(例如 Microchip Technology、NXP 或 STMicroelectronics 的 MCU)上亦如此2。

但是,對于對推理準確性和延時提出嚴格要求的應用,傳統 CNN 算法在資源有限的平臺上根本不實用。CNN 提出的存儲器和處理要求遠遠超出了典型線路供電型消費產品內置的嵌入式系統的資源范圍,更不用說電池供電型可穿戴設備或其他預期提供“始終運行”的KWS 功能的移動設計。模型壓縮技術的發展需要 DNN 算法能夠支持這些平臺。

高效的 DNN 方法

為了解決呈螺旋上升的模型尺寸問題,機器學習科學家已經找到了在無顯著精度損失的情況下大幅降低存儲器需求的方法。例如,研究人員修剪了對結果貢獻很小的內部網絡連接。他們還將內部參數所需的精度降低到 8 位甚至 5 位值。通過應用上述方法和其他方法,他們在無明顯精度損失的情況下,將行業黃金標準 CNN 模型的尺寸減小 30 倍至 49 倍,從而減少了存儲器需求3。

除了降低存儲器需求外,模型壓縮技術還有助于降低處理要求:修剪減少了所需計算次數,而精度降低則加快了計算速度。

但是,即使降低了精度,這些網絡仍需要大量屬于機器學習算法核心的 GEMM 運算。這些運算的范圍不僅推動了對推理平臺高性能硬件的需求,而且還直接影響了這些平臺的功率預算。饋送這些矩陣運算需要大量訪問存儲器,單是這方面的功耗,就輕易超過電池供電型設備的功率預算。

為了解決移動設備的存儲器、處理和功耗限制,研究人員已將模型壓縮的概念擴展到極致。研究人員將模型參數量化為 +1 或 -1(或 0)值,以建立稱為二值神經網絡 (BNN) 的架構,而不是簡單地將內部參數的精度降低到 8 位或更低位。

BNN 如何將 KWS 引入資源有限的設計

在基本拓撲方面,BNN 與 CNN 大致相同,并且所含層類型相同(包括卷積層、歸一化層、激活層和池化層)。這些層內使用 1 位參數(權重與偏置值),在運算上差異巨大。

BNN 不是執行傳統 CNN 中所需的 32 位浮點 GEMM 運算,而是可以使用更簡單的按位 XNOR 運算。雖然這種方法可能導致訓練時間延長,但研究人員發現,BNN 模型的準確率幾乎與使用 32 位浮點值的模型相當4。二進制化參數的使用不僅減少了 BNN 的存儲器占用空間,而且還減少了其存儲器訪問要求,因為可以在單字訪問周期中獲取多個 1 位參數,并且饋送 XNOR 運算所需的參數更少。

BNN 的計算簡化后,處理要求也隨之顯著降低。因此,BNN 可以在不顯著影響精度的情況下,實現比先前方法更高的推理率。在一項研究中,研究人員比較了在 Xilinx XC7Z020 FPGA 片上系統 (SoC) 上實現 CNN 和 BNN 的性能,其中該片上系統在基于 XC7Z020 的開發平臺(如 Digilent 的 ZedBoard)上運行。使用 XC7Z020 FPGA 后,兩個 DNN 均實現了高效性能,但 CNN 實現了每瓦特 7.27 每秒十億次運算 (GOPS),而 BNN 在相同零件上的數據為 44.2 GOPS/瓦5。

由于其可編程性和高能效,FPGA 已成為使用 CNN 的應用(如嵌入式視覺)的熱門推理平臺6。先進的 FPGA 組合了嵌入式存儲器和多個并行處理數字信號處理 (DSP) 單元,可加快 GEMM 和其他矩陣計算。雖然 BNN 需要的 DSP 資源僅是 CNN 所需的一小部分,但 FPGA 仍然非常適合這些架構。例如,開發人員可利用能夠加速此架構中二進制卷積或其他按位運算的專用邏輯,來增強其基于 FPGA 的 BNN。

但是,對于專注于大型應用的典型開發人員而言,即使縮短項目日程以適應快速發展的應用領域(如可穿戴設備和其他聲控連接產品),只要對基于 FPGA 的 DNN 進行優化設計,不論類型如何,都會造成拖延。Lattice Semiconductor 的 SensAI? 技術堆棧通過專門的 DNN IP、參考設計、設計服務以及用于實現推理模型的簡單 FPGA 開發工作流程消除了這一障礙。

基于 FPGA 的 BNN 解決方案

SensAI 將 DNN IP 與神經網絡編譯器結合在一個工作流程中,旨在加快實現通過行業標準機器學習框架(包括 Caffe 和 TensorFlow)創建的神經網絡模型(圖 1)。

通過FPGA實現深度神經網絡的解決方案

圖 1:Lattice SensAI 技術堆棧可幫助開發人員使用通過標準機器學習框架創建的 CNN 和 BNN 模型,在 Lattice iCE40 UltraPlus 和 ECP5 FPGA 上實現低功耗推理引擎。(圖片來源:Lattice Semiconductor)

Lattice 的 CNN IP 旨在與 Lattice ECP5 FPGA 配合使用,支持在 Lattice 基于 ECP5 的嵌入式視覺開發套件上運行 1 W 或更低功耗的高性能圖像識別功能。但是,對于資源受限的設計,Lattice 的 BNN IP 使開發人員能夠充分利用這種高效架構,在低功耗 Lattice ICE40 UltraPlus FPGA 上實現推理引擎。

使用 Lattice BNN IP 后,這些基于 ICE40 UltraPlus 的推理引擎可以在顯著降低運行功耗、使用更少存儲器和處理資源的情況下實現高精度。Lattice 通過 KWS 推理模型的完整 ICE40 UltraPlus FPGA 實現,展示了此 BNN IP 的效率,其中推理模型實現在 Lattice 移動開發平臺 (MDP) 上的運行功耗約為 1 mW。

Lattice SensAI BNN IP 包括實現 BNN 推理解決方案所需的全套模塊(圖 2)。

通過FPGA實現深度神經網絡的解決方案

圖 2:Lattice SensAI IP 提供了在 Lattice iCE40 UltraPlus FPGA 上實現 BNN 解決方案所需的全套模型層、存儲器子系統、控制邏輯和系統接口。(圖片來源:Lattice Semiconductor)

除了支持卷積、池化和其他 DNN 層功能外,該 IP 還有多個存儲器子系統,包括用于訓練期間所開發模型的固定參數和推理期間所執行計算的中間結果的子系統。除了輸入、輸出和控制線的接口邏輯外,該 IP 還提供了一個控制子系統,用于處理實現模型操作的命令序列。

對于新項目,開發人員使用 Lattice Radiant 軟件包中的一些簡單菜單為其特定設計生成基本 IP 內核。這里,開發人員只需使用 Radiant IP 配置向導中提供的菜單選項,為所需存儲器(8、16 或 64 KB)和二進制類型(+ 1/-1 或 +1/0)配置 BNN IP 塊。開發人員通過使用另一個 Radiant 菜單來完成此簡單設置過程,生成 RTL 和其他支持文件,Radiant FPGA 程序員使用這些文件,根據其所選 BNN 配置對設備進行編程。

雖然此 FPGA 編程工作流程為 BNN 模型提供了底層執行平臺,但模型本身的編程遵循 SensAI 環境中的單獨路徑。

在 SensAI 工作流程的模型開發部分,開發人員使用 Lattice 神經網絡編譯器將 Caffe 或 TensorFlow 模型轉換成相應文件,這些文件包含在所配置 BNN 核心上實現這些模型所需的模型參數和命令序列。在最后一步中,開發人員使用 Radiant 將模型文件和 FPGA 比特流文件加載到 FPGA 平臺中。

KWS 實現

Lattice 利用了一個旨在運行于 Lattice MDP 之上的基于 BNN 的完整 KWS 模型演示此 BNN 開發過程。MDP 本身就是一個出色的平臺,結合了 iCE40 UltraPlus FPGA 和一系列可能在典型低功耗移動應用中遇到的外設。

此開發板集成了四個 iCE40 UltraPlus 器件,在演示該板內置的 1.54 英寸顯示屏、640 x 480 圖像傳感器和 RGB LED 的應用中,每個器件都有展示。該板還包含一整套傳感器,包括壓力傳感器、羅盤傳感器、3 軸線性加速計、3D 加速計和 3D 陀螺儀。針對像關鍵字檢測這樣的音頻應用,該電路板還包括兩個 I2S 麥克風和兩個 PDM 麥克風。對于要求更高的應用,開發人員可以將 Lattice 的 8 麥克風 LF-81AGG-EVN 子板插入 MDP,以支持音頻波束形成,從而在聲控應用中增強方向響應(圖 3)。

圖 3:Lattice 移動開發平臺 (MDP) 集成了一套廣泛的支持功能和外設,同時為 8 麥克風陣列(圖中顯示為與 MDP 相連)等擴展組件提供連接器。(圖片來源:Lattice Semiconductor)

該開發板的內置電源管理電路允許開發人員采用內部鋰離子電池實現獨立操作,或采用外部電源為該板供電。在開發過程中,可通過主機開發平臺 USB 連接為該板供電。此主機可運行 Lattice iCEcube2,用于創建自定義設計,或運行 Lattice Radiant 編程器,以使用像 Lattice 關鍵詞檢測演示這樣預先建立的設計對板載 iCE40 FPGA 進行編程。

Lattice DNN 演示(包括用于關鍵字詞檢測的演示)提供了一整套常規情況下通過 SensAI 工作流生成的文件。因此,開發人員使用 Radiant 編程器即可加載這些文件,以評估模型的性能,例如關鍵字詞檢測演示中的 BNN 推理模型。

對于希望檢查實現細節的開發人員,演示項目還提供模型文件,包括 TensorFlow .pb 文件以及 Caffe .proto 和 .caffeemodel 文件。開發人員可以檢查這些模型以評估所提供的網絡設計。對于具有更多特殊要求的應用,這些模型可用作開發人員自有模型的起點。通常,設計人員會發現基于典型 CNN 類型設計的拓撲。

在 Lattice 關鍵詞檢測演示項目中,所提供的 BNN 網絡設計使用熟悉的拓撲結構,重復多個階段,每個階段包括卷積層、批量歸一化層、縮放層、ReLu 激活層和池化層(圖 4)。盡管與傳統的 CNN 設計在很大程度上無甚區別,但 Lattice BNN 實現采用內部二值參數和相關機制,這是此高效架構的核心。

通過FPGA實現深度神經網絡的解決方案

圖 4:BNN 包含在 Lattice 演示項目中,使用一個由三個相似卷積模塊組成的流水線執行關鍵詞檢測,每個卷積模塊包括卷積層、批量歸一化層、縮放層、ReLu 激活層和池化層。(圖片來源:Lattice/Ethereon)

Lattice 演示使用用于管理從外部閃存加載的音頻流和命令序列的模塊,將此 BNN 推理模型實現為嵌入 FPGA 中的 BNN 加速器引擎實現(圖 5)。

通過FPGA實現深度神經網絡的解決方案

圖 5:Lattice 關鍵詞檢測演示在單個低功耗 Lattice iCE40 UltraPlus FPGA 上實現了一個完整的 KWS 系統。(圖片來源:Lattice Semiconductor)

這里,I2S 主模塊接受來自外部麥克風的音頻數據,并將數據傳遞到音頻緩沖器。音頻到指紋塊進而從緩沖器中讀取音頻樣本,并使用從濾波器組存儲區讀取的濾波器生成基本音頻頻譜圖。此操作可提供合適的結果,且沒有傳統 FFT 頻譜圖的計算復雜性。

最后,BNN 加速器引擎使用此經處理的音頻流進行推理,產生三種可能的輸出:靜默、關鍵詞、無關鍵詞。

在配置好開發板并加載演示文件后,開發人員只需通過為 MDP 板供電并說出關鍵詞(在本例中為“seven”一詞)即可運行演示。當推理引擎檢測到關鍵詞時,FPGA 將打開 MDP 中的內置 RGB LED。

總結

機器學習功能強大,可為增強可穿戴設備和其他移動應用提供強大的解決方案,例如與聲控用戶界面配合使用的關鍵字檢測。雖然像 CNN 這樣的機器學習模型架構可以提供高度準確的結果,但是它們對存儲器、處理和功率的要求通常超出電池供電型設備的資源能力。

如本文所述,BNN 架構解決了這些問題。使用 Lattice Semiconductor 的先進機器學習解決方案,開發人員可以借助這一功耗僅約 1 mW 的 KWS 模型快速增強其設計。

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

    關注

    1660

    文章

    22412

    瀏覽量

    636335
  • 神經網絡
    +關注

    關注

    42

    文章

    4838

    瀏覽量

    107778
  • 機器學習
    +關注

    關注

    66

    文章

    8553

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    神經網絡的初步認識

    日常生活中的智能應用都離不開深度學習,而深度學習則依賴于神經網絡實現。什么是神經網絡神經網絡
    的頭像 發表于 12-17 15:05 ?328次閱讀
    <b class='flag-5'>神經網絡</b>的初步認識

    AMD利用可重構FPGA設備Moku實現自定義激光探測解決方案

    摘要本文介紹了AdvancedMicroDevices,AMD公司如何基于可重構FPGA設備自定義激光探測解決方案,替代傳統的儀器配置,通過靈活且可定制的FPGA設備Moku提供更高效
    的頭像 發表于 11-20 17:28 ?1708次閱讀
    AMD利用可重構<b class='flag-5'>FPGA</b>設備Moku<b class='flag-5'>實現</b>自定義激光探測<b class='flag-5'>解決方案</b>

    自動駕駛中常提的卷積神經網絡是個啥?

    在自動駕駛領域,經常會聽到卷積神經網絡技術。卷積神經網絡,簡稱為CNN,是一種專門用來處理網格狀數據(比如圖像)的深度學習模型。CNN在圖像處理中尤其常見,因為圖像本身就可以看作是由像素排列成的二維網格。
    的頭像 發表于 11-19 18:15 ?2077次閱讀
    自動駕駛中常提的卷積<b class='flag-5'>神經網絡</b>是個啥?

    NMSIS神經網絡庫使用介紹

    NMSIS NN 軟件庫是一組高效的神經網絡內核,旨在最大限度地提高 Nuclei N 處理器內核上的神經網絡的性能并最??大限度地減少其內存占用。 該庫分為多個功能,每個功能涵蓋特定類別
    發表于 10-29 06:08

    在Ubuntu20.04系統中訓練神經網絡模型的一些經驗

    , batch_size=512, epochs=20)總結 這個核心算法中的卷積神經網絡結構和訓練過程,是用來對MNIST手寫數字圖像進行分類的。模型將圖像作為輸入,通過卷積和池化層提取圖像的特征,然后通過全連接層進行分類預
    發表于 10-22 07:03

    CICC2033神經網絡部署相關操作

    在完成神經網絡量化后,需要將神經網絡部署到硬件加速器上。首先需要將所有權重數據以及輸入數據導入到存儲器內。 在仿真環境下,可將其存于一個文件,并在 Verilog 代碼中通過 readmemh 函數
    發表于 10-20 08:00

    液態神經網絡(LNN):時間連續性與動態適應性的神經網絡

    神經元,但卻能產生復雜的行為。受此啟發,與傳統的神經網絡相比,LNN旨在通過模擬大腦中神經元之間的動態連接來處理信息,這種網絡能夠順序處理數
    的頭像 發表于 09-28 10:03 ?1223次閱讀
    液態<b class='flag-5'>神經網絡</b>(LNN):時間連續性與動態適應性的<b class='flag-5'>神經網絡</b>

    神經網絡的并行計算與加速技術

    隨著人工智能技術的飛速發展,神經網絡在眾多領域展現出了巨大的潛力和廣泛的應用前景。然而,神經網絡模型的復雜度和規模也在不斷增加,這使得傳統的串行計算方式面臨著巨大的挑戰,如計算速度慢、訓練時間長等
    的頭像 發表于 09-17 13:31 ?1129次閱讀
    <b class='flag-5'>神經網絡</b>的并行計算與加速技術

    如何在機器視覺中部署深度學習神經網絡

    圖 1:基于深度學習的目標檢測可定位已訓練的目標類別,并通過矩形框(邊界框)對其進行標識。 在討論人工智能(AI)或深度學習時,經常會出現“神經網絡”、“黑箱”、“標注”等術語。這些概
    的頭像 發表于 09-10 17:38 ?901次閱讀
    如何在機器視覺中部署<b class='flag-5'>深度</b>學習<b class='flag-5'>神經網絡</b>

    基于神經網絡的數字預失真模型解決方案

    在基于神經網絡的數字預失真(DPD)模型中,使用不同的激活函數對整個系統性能和能效有何影響?
    的頭像 發表于 08-29 14:01 ?3472次閱讀

    無刷電機小波神經網絡轉子位置檢測方法的研究

    摘要:論文通過對無刷電機數學模型的推導,得出轉角:與三相相電壓之間存在映射關系,因此構建了一個以三相相電壓為輸人,轉角為輸出的小波神經網絡實現轉角預測,并采用改進遺傳算法來訓練網絡
    發表于 06-25 13:06

    神經網絡專家系統在電機故障診斷中的應用

    摘要:針對傳統專家系統不能進行自學習、自適應的問題,本文提出了基于種經網絡專家系統的并步電機故障診斷方法。本文將小波神經網絡和專家系統相結合,充分發揮了二者故障診斷的優點,很大程度上降低了對電機
    發表于 06-16 22:09

    神經網絡RAS在異步電機轉速估計中的仿真研究

    眾多方法中,由于其結構簡單,穩定性好廣泛受到人們的重視,且已被用于產品開發。但是MRAS仍存在在低速區速度估計精度下降和對電動機參數變化非常敏感的問題。本文利用神經網絡的特點,使估計更為簡單、快速
    發表于 06-16 21:54

    基于FPGA搭建神經網絡的步驟解析

    本文的目的是在一個神經網絡已經通過python或者MATLAB訓練好的神經網絡模型,將訓練好的模型的權重和偏置文件以TXT文件格式導出,然后通過python程序將txt文件轉化為coe
    的頭像 發表于 06-03 15:51 ?1215次閱讀
    基于<b class='flag-5'>FPGA</b>搭建<b class='flag-5'>神經網絡</b>的步驟解析

    NVIDIA實現神經網絡渲染技術的突破性增強功能

    近日,NVIDIA 宣布了 NVIDIA RTX 神經網絡渲染技術的突破性增強功能。NVIDIA 與微軟合作,將在 4 月的 Microsoft DirectX 預覽版中增加神經網絡著色技術,讓開
    的頭像 發表于 04-07 11:33 ?1182次閱讀