新聞中心

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

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

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

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

本文引用地址:http://www.butianyuan.cn/article/201702/343503.htm

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

  CDNN2 軟件框架

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

  CDNN 硬件加速器

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

  支持 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ù)中運行此類分析相比,CDNN2在縮短等待時間并提高隱私的同時,還能極大地降低數(shù)據(jù)帶寬及存儲量。與 CEVA-XM 智能視覺處理器配套使用,CDNN2 極大地縮短了上市時間并在嵌入式系統(tǒng)執(zhí)行機(jī)器學(xué)習(xí)的能耗方面有極大優(yōu)勢。

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

  除了為 Caffe 提供支持,第二代框架包括對由 TensorFlow 生成的網(wǎng)絡(luò)的支持,從而確??蛻衾霉雀鑿姶蟮纳疃葘W(xué)習(xí)系統(tǒng)開發(fā)其下一代 AI 設(shè)備。CDNN2 軟件庫是很靈活的模塊,既可支持所有 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)外,還包括多入多出、每一級網(wǎng)絡(luò)的多層及全卷積網(wǎng)絡(luò)。

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

  CDNN2 流程由兩部分組成。首先是網(wǎng)絡(luò)訓(xùn)練階段。此階段可由我們的 OEM/客戶或合作伙伴在線下完成。訓(xùn)練時間取決于網(wǎng)絡(luò)結(jié)構(gòu)、圖像數(shù)據(jù)庫大小及構(gòu)成網(wǎng)絡(luò)的層數(shù)。訓(xùn)練階段的成果是訓(xùn)練好的的浮點網(wǎng)絡(luò)。目前我們所面臨的挑戰(zhàn)是在嵌入式系統(tǒng)中高效地運行此網(wǎng)絡(luò)。例如,Alexnet 預(yù)訓(xùn)網(wǎng)絡(luò)是 253Mb 的浮點網(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)浮點神經(jīng)網(wǎng)絡(luò)轉(zhuǎn)換成定點數(shù)學(xué)計算下對等的嵌入優(yōu)化網(wǎng)絡(luò)。CDNN2 的可交付產(chǎn)品包括一個基于硬件的開發(fā)包,不僅可讓開發(fā)商模擬運行其網(wǎng)絡(luò),還可在 CEVA 開發(fā)板上輕松進(jìn)行實時運行。

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

 

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

  CDNN2 應(yīng)用程序流

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

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

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

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

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

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

  caffemodel,包括預(yù)訓(xù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)行通信的各類選項。

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

  CDNN 硬件加速器

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

 

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

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



評論


相關(guān)推薦

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

關(guān)閉