<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 業(yè)界動(dòng)態(tài) > CDNN:一鍵生成嵌入式神經(jīng)網(wǎng)絡(luò)

          CDNN:一鍵生成嵌入式神經(jīng)網(wǎng)絡(luò)

          作者: 時(shí)間:2017-02-04 來(lái)源:集微網(wǎng) 收藏

            我在之前的兩篇博文中討論了深度學(xué)習(xí)的框架、特點(diǎn)及挑戰(zhàn)以及嵌入式系統(tǒng)中深度學(xué)習(xí)所面臨的具體挑戰(zhàn)。我想在本篇博文中介紹應(yīng)對(duì)這些挑戰(zhàn)的工具包。此工具包是提高嵌入式系統(tǒng)深度學(xué)習(xí)開發(fā)效率的極為強(qiáng)大且行之有效的途徑。

          本文引用地址:http://www.ex-cimer.com/article/201702/343503.htm

             深度 (CDNN) 工具包由三項(xiàng)關(guān)鍵部件構(gòu)成:

            CDNN2 軟件框架

             網(wǎng)絡(luò)生成器

            CDNN 硬件加速器

            這些部件共同提高了成像及視覺處理器 -XM 產(chǎn)品系列的功能,從而為可拍照的設(shè)備提供了能耗極低的深度學(xué)習(xí)解決方案。本博文將對(duì)這些部件進(jìn)行一一介紹,讓大家對(duì)其功能及工作原理有所了解。

            支持 Caffe 及 TensorFlow

            CDNN 工具包中的 CDNN2 是第二代 CEVA 深度軟件 (SW) 框架。它支持將要求最為嚴(yán)苛的機(jī)器學(xué)習(xí)網(wǎng)絡(luò)拓?fù)鋸念A(yù)訓(xùn)網(wǎng)絡(luò)遷移到嵌入式系統(tǒng)。它使得相機(jī)設(shè)備能進(jìn)行基于深度學(xué)習(xí)的本地視頻分析。與在云服務(wù)中運(yùn)行此類分析相比,CDNN2在縮短等待時(shí)間并提高隱私的同時(shí),還能極大地降低數(shù)據(jù)帶寬及存儲(chǔ)量。與 CEVA-XM 智能視覺處理器配套使用,CDNN2 極大地縮短了上市時(shí)間并在嵌入式系統(tǒng)執(zhí)行機(jī)器學(xué)習(xí)的能耗方面有極大優(yōu)勢(shì)。

            CDNN2 SW 框架的設(shè)計(jì)離不開 CEVA-XM 客戶及合作伙伴的豐富經(jīng)驗(yàn)。他們一直利用我們的軟件框架在多個(gè)終端市場(chǎng)開發(fā)并推廣深度學(xué)習(xí)系統(tǒng),包括智能手機(jī)、高級(jí)輔助駕駛系統(tǒng) (ADAS)、監(jiān)控設(shè)備、無(wú)人機(jī)及機(jī)器人等。

            除了為 Caffe 提供支持,第二代框架包括對(duì)由 TensorFlow 生成的網(wǎng)絡(luò)的支持,從而確保客戶利用谷歌強(qiáng)大的深度學(xué)習(xí)系統(tǒng)開發(fā)其下一代 AI 設(shè)備。CDNN2 軟件庫(kù)是很靈活的模塊,既可支持所有 CNN 執(zhí)行條件又可支持各類網(wǎng)絡(luò)的不同網(wǎng)絡(luò)層。這些網(wǎng)絡(luò)包括 Alexnet、GoogLeNet、ResidualNet (ResNet)、SegNet、VGG (VGG-19、VGG-16 及 VGG_S) 及網(wǎng)中網(wǎng) (NIN) 等。CDNN2 支持最先進(jìn)的層,包括卷積、去卷積、池、全連接、softmax 層、串聯(lián)和 upsample 層,以及各類初始模型。它支持所有網(wǎng)絡(luò)拓?fù)?,除了線性網(wǎng)絡(luò)(如 Alexnet)外,還包括多入多出、每一級(jí)網(wǎng)絡(luò)的多層及全卷積網(wǎng)絡(luò)。

            讓開發(fā)商在 CEVA 開發(fā)板上實(shí)時(shí)運(yùn)行網(wǎng)絡(luò)

            CDNN2 流程由兩部分組成。首先是網(wǎng)絡(luò)訓(xùn)練階段。此階段可由我們的 OEM/客戶或合作伙伴在線下完成。訓(xùn)練時(shí)間取決于網(wǎng)絡(luò)結(jié)構(gòu)、圖像數(shù)據(jù)庫(kù)大小及構(gòu)成網(wǎng)絡(luò)的層數(shù)。訓(xùn)練階段的成果是訓(xùn)練好的的浮點(diǎn)網(wǎng)絡(luò)。目前我們所面臨的挑戰(zhàn)是在嵌入式系統(tǒng)中高效地運(yùn)行此網(wǎng)絡(luò)。例如,Alexnet 預(yù)訓(xùn)網(wǎng)絡(luò)是 253Mb 的浮點(diǎn)網(wǎng)絡(luò),包括權(quán)重及數(shù)據(jù)。

           

            CDNN2 使用流

            第二部分是 CEVA 進(jìn)行必要轉(zhuǎn)換并使網(wǎng)絡(luò)為嵌入式系統(tǒng)做好準(zhǔn)備。CDNN2 框架的核心部件是線下 CEVA 網(wǎng)絡(luò)生成器。利用此生成器,輕按按鈕即可將預(yù)訓(xùn)浮點(diǎn)神經(jīng)網(wǎng)絡(luò)轉(zhuǎn)換成定點(diǎn)數(shù)學(xué)計(jì)算下對(duì)等的嵌入優(yōu)化網(wǎng)絡(luò)。CDNN2 的可交付產(chǎn)品包括一個(gè)基于硬件的開發(fā)包,不僅可讓開發(fā)商模擬運(yùn)行其網(wǎng)絡(luò),還可在 CEVA 開發(fā)板上輕松進(jìn)行實(shí)時(shí)運(yùn)行。

            CDNN2 實(shí)時(shí)應(yīng)用程序流程

           

            應(yīng)用程序流程從處理實(shí)景開始,在應(yīng)用程序的預(yù)處理階段進(jìn)行處理。預(yù)處理包括縮放、背景弱化及選擇感興趣區(qū)域 (ROI)。主機(jī)端及 DSP 端均可執(zhí)行此階段的處理任務(wù)。預(yù)處理階段將所選擇的 ROI 發(fā)送至 CDNN 實(shí)時(shí)圖像庫(kù)進(jìn)行處理。這使用的是 CNN 應(yīng)用程序 API。

            CDNN2 應(yīng)用程序流

            正如上方圖片所示,CEVA 為每一層均提供 API,因此靈活性極強(qiáng)。 CDNN 實(shí)時(shí)圖像庫(kù)的處理結(jié)果是 ROI 分類。接下來(lái),應(yīng)用程序的后處理模塊完成識(shí)別階段并繼續(xù)追蹤未識(shí)別出的新物體。

            AlexNet – 網(wǎng)絡(luò)性能

            為演示此種解決方案在真實(shí)神經(jīng)網(wǎng)絡(luò)上的功能,我們來(lái)看看 Alexnet。這是一個(gè)有著 24 層并能識(shí)別 1000 類的網(wǎng)絡(luò)。它所需的預(yù)訓(xùn)網(wǎng)絡(luò)內(nèi)存帶寬約為 250 Mb 浮點(diǎn)。這同時(shí)包括權(quán)重及數(shù)據(jù)。對(duì)于嵌入式系統(tǒng)而言,這是個(gè)非常重的網(wǎng)絡(luò),因此運(yùn)行此網(wǎng)絡(luò)是一項(xiàng)嚴(yán)峻挑戰(zhàn)。如果采用的是 CEVA 解決方案,那么在使用“CEVA 線下網(wǎng)絡(luò)生成器”及實(shí)時(shí) CDNN 數(shù)據(jù)庫(kù)之后,網(wǎng)絡(luò)帶寬減至 16 Mb 浮點(diǎn)。這就完成了CEVA-XM 視覺處理器架構(gòu)的優(yōu)化。

            CEVA 網(wǎng)絡(luò)生成器 – 不到 10 分鐘即可做好嵌入準(zhǔn)備

            如前所述, CEVA 網(wǎng)絡(luò)生成器是 CDNN 解決方案的關(guān)鍵部件。此部件的主要優(yōu)勢(shì)在于使用方便,以及它在網(wǎng)絡(luò)移植、轉(zhuǎn)換及適應(yīng)嵌入式平臺(tái)上所節(jié)省的時(shí)間。在確定開發(fā)時(shí)間、開發(fā)風(fēng)險(xiǎn)及由此導(dǎo)致的開發(fā)成本上這是一個(gè)很重要的考量因素。

            那么它是如何工作的呢?如前所述,先是線下訓(xùn)練網(wǎng)絡(luò)的 Caffe、TensorFlow 及其它網(wǎng)絡(luò)所使用的圖像數(shù)據(jù)庫(kù)。輸入 CEVA 網(wǎng)絡(luò)生成器的文件包括轉(zhuǎn)換所需的重要數(shù)據(jù)。以下為輸入 CEVA 網(wǎng)絡(luò)生成器的各類文件:

            caffemodel,包括預(yù)訓(xùn)浮點(diǎn)網(wǎng)絡(luò)。

            prototxt,包括以下網(wǎng)絡(luò)結(jié)構(gòu)信息:

            1. 所使用的 SW 框架,可以是 Caffe 或 TensorFlow

            2. 所輸入的參考圖像的大小

            3. 各類神經(jīng)網(wǎng)絡(luò)層的類型及其參數(shù)

            4. 歸一化的圖像(如需要)

            標(biāo)記,包括網(wǎng)絡(luò)標(biāo)記。標(biāo)記定義后期與后處理塊進(jìn)行通信的各類選項(xiàng)。

            一旦設(shè)定好網(wǎng)絡(luò)生成器所需的所有參數(shù),最后一步就是“按按鈕”。結(jié)果便是得以全面優(yōu)化的運(yùn)行 CEVA-XM 視覺處理器的網(wǎng)絡(luò)。從始至終,整個(gè)過程不到 10 分鐘。這可不是需要花費(fèi)數(shù)周甚至數(shù)月之久的人工移植網(wǎng)絡(luò)。下列視頻可讓你感受網(wǎng)絡(luò)生成器的速度及其便于使用的特點(diǎn)。從互聯(lián)網(wǎng)上下載年齡分類神經(jīng)網(wǎng)絡(luò),通過 CEVA 網(wǎng)絡(luò)生成器進(jìn)行傳遞并在 CEVA-XM4 FPGA 上運(yùn)行,這整個(gè)過程約需要 7 分鐘。

            CDNN 硬件加速器

            除了這些節(jié)省時(shí)間的軟件工具,功能強(qiáng)大的專用硬件加速器 (HWA) 更是讓 CDNN 工具包如虎添翼。CDNN HWA 讓深度學(xué)習(xí)算法的性能極為出色,且能耗極低。在 16b 的精度下達(dá)到 512 MACs/cycle,這使其在運(yùn)行當(dāng)今最復(fù)雜的神經(jīng)網(wǎng)絡(luò)時(shí)能有一流的性能表現(xiàn)。同時(shí)使用 CDNN 軟件框架及 CDNN 硬件加速器不僅能讓神經(jīng)網(wǎng)絡(luò)具備適應(yīng)不斷變化的機(jī)器學(xué)習(xí)領(lǐng)域發(fā)展的靈活性,也會(huì)帶來(lái)超凡的性能表現(xiàn)。

           

            人工智能正改變世界,它會(huì)進(jìn)入嵌入式系統(tǒng)

            從虛擬助手到自動(dòng)車輛,人工智能 (AI) 正在重新定義獲得信息的方式、便利、安全及人類生活的其它方面。由于人工智能進(jìn)入更小的便攜設(shè)備,我們的生活便有了無(wú)盡可能。正如我在本文及之前的博文中所深入探討的,這也帶來(lái)了諸多挑戰(zhàn)。CDNN 工具包的設(shè)計(jì)可應(yīng)對(duì)所有這些挑戰(zhàn)。它提供了最佳的硬件軟件 IP 組合,而省時(shí)的開發(fā)工具讓其性能更為出眾,從而為數(shù)十億種設(shè)備鋪平了使用深度學(xué)習(xí)的道路。隨著這些技術(shù)的發(fā)展與演變,CEVA 將繼續(xù)位于開發(fā)神經(jīng)網(wǎng)絡(luò)嵌入式平臺(tái)的最前沿。



          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();