在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

巧用模型編譯器和機器人操作系統在物聯網上面做開發

8g3K_AI_Thinker ? 來源:互聯網 ? 作者:佚名 ? 2017-12-02 07:04 ? 次閱讀

通過深度學習技術,物聯網IoT)設備能夠得以解析非結構化的多媒體數據,智能地響應用戶和環境事件,但是卻伴隨著苛刻的性能和功耗要求。本文作者探討了兩種方式以便將深度學習和低功耗的物聯網設備成功整合。

近年來,越來越多的物聯網產品出現在市場上,它們采集周圍的環境數據,并使用傳統的機器學習技術理解這些數據。一個例子是Google的Nest恒溫器,采用結構化的方式記錄溫度數據,并通過算法來掌握用戶的溫度偏好和時間表。然而,其對于非結構化的多媒體數據,例如音頻信號和視覺圖像則顯得無能為力。

新興的物聯網設備采用了更加復雜的深度學習技術,通過神經網絡來探索其所處環境。例如,Amazon Echo可以理解人的語音指令,通過語音識別,將音頻信號轉換成單詞串,然后使用這些單詞來搜索相關信息。最近,微軟的Windows物聯網團隊發布了一個基于面部識別的安全系統,利用到了深度學習技術,當識別到用戶面部時能夠自動解開門鎖。

物聯網設備上的深度學習應用通常具有苛刻的實時性要求。例如,基于物體識別的安全攝像機為了能及時響應房屋內出現的陌生人,通常需要小于500毫秒的檢測延遲來捕獲和處理目標事件。消費級的物聯網設備通常采用云服務來提供某種智能,然而其所依賴的優質互聯網連接,僅僅在部分范圍內可用,并且往往需要較高的成本,這對設備能否滿足實時性要求提出了挑戰。與之相比,直接在物聯網設備上實現深度學習或許是一個更好的選擇,這樣就可以免受連接質量的影響。

然而,直接在嵌入式設備上實現深度學習是困難的。事實上,低功耗是移動物聯網設備的主要特征,而這通常意味著計算能力受限,內存容量較小。在軟件方面,為了減少內存占用,應用程序通常直接運行在裸機上,或者在包含極少量第三方庫的輕量級操作系統上。而與之相反,深度學習意味著高性能計算,并伴隨著高功耗。此外,現有的深度學習庫通常需要調用許多第三方庫,而這些庫很難遷移到物聯網設備。

在深度學習任務中,最廣泛使用的神經網絡是卷積神經網絡(CNNs),它能夠將非結構化的圖像數據轉換成結構化的對象標簽數據。一般來說,CNNs的工作流程如下:首先,卷積層掃描輸入圖像以生成特征向量;第二步,激活層確定在圖像推理過程中哪些特征向量應該被激活使用;第三步,使用池化層降低特征向量的大小;最后,使用全連接層將池化層的所有輸出和輸出層相連。

在本文中,我們將討論如何使用CNN推理機在物聯網設備上實現深度學習。

將服務遷移到云端

對于低功耗的物聯網設備,問題在于是否存在一個可靠的解決方案,能夠將深度學習部署在云端,同時滿足功耗和性能的要求。為了回答這個問題,我們在一塊Nvidia Jetson TX1設備上實現了基于CNN的物體推理,并將其性能、功耗與將這些服務遷移到云端后的情況進行對比。

為了確定將服務遷移到云端后,是否可以降低功耗并滿足對物體識別任務的實時性要求,我們將圖像發送到云端,然后等待云端將結果返回。研究表明,對于物體識別任務,本地執行的功耗為7 W,而遷移到云端后功耗降低為2W。這說明將服務遷移到云端確實是降低功耗的有效途徑。

然而,遷移到云端會導致至少2秒的延遲,甚至可能高達5秒,這不能滿足我們500ms的實時性要求。此外,延遲的劇烈抖動使得服務非常不可靠(作為對比,我們在美國和中國分別運行這些實驗進行觀察)。通過這些實驗我們得出結論,在當前的網絡環境下,將實時性深度學習任務遷移到云端是一個尚未可行的解決方案。

移植深度學習平臺到嵌入式設備

相比遷移到云端的不切實際,一個選擇是將現有的深度學習平臺移植到物聯網設備。為此,我們選擇移植由Google開發并開源的深度學習平臺TesnsorFlow來建立具有物體推理能力的物聯網設備Zuluko——PerceptIn的裸機ARM片上系統。Zuluko由四個運行在1 GHz的ARM v7內核和512 MB RAM組成,峰值功耗約為3W。根據我們的研究,在基于ARM-Linux的片上系統上,TensorFlow能夠提供最佳性能,這也是我們選擇它的原因。

我們預計能夠在幾天內完成移植工作,然而,移植TensorFlow并不容易,它依賴于許多第三方庫(見圖1)。為了減少資源消耗,大多數物聯網設備都運行在裸機上,因此移植所有依賴項可以說是一項艱巨的任務。我們花了一個星期的精力才使得TensorFlow得以在Zuluko上運行。此次經驗也使我們重新思考,相比移植一個現有的平臺,是否從頭開始構建一個新平臺更值得。然而缺乏諸如卷積算子等基本的構建塊,從頭開始構建并不容易。此外,從頭開始構建的推理機也很難比一個久經測試的深度學習框架表現更優。


圖1 TensorFlow對第三方庫的依賴。因為依賴于許多第三方庫,將現有的深度學習平臺(如TensorFlow)移植到物聯網設備并不是一個簡單的過程。

從頭開始構建推理機

ARM最近宣布推出其計算庫(ACL,developer.arm.com/technologies/compute-library),為ARM Cortex-A系列CPU處理器和ARM Mali系列GPU實現了軟件功能的綜合集成。具體而言,ACL為CNNs提供了基本的構建模塊,包括激活、卷積、全連接和局部連接、規范化、池化和softmax功能。這些功能正是我們建立推理機所需要的。

我們使用ACL構建塊構建了一個具有SqueezeNet架構的CNN推理機,其內存占用空間小,適合于嵌入式設備。SqueezeNet在保持相似的推理精度的同時,使用1×1卷積核來減少3×3卷積層的輸入大小。然后,我們將SqueezeNet推理機的性能與Zuluko上的TensorFlow進行比較。為了確保比較的公平性,我們啟用了TensorFlow中的ARM NEON向量計算優化,并在創建SqueezeNet引擎時使用了支持NEON的構建塊。確保兩個引擎都使用了NEON向量計算,這樣任何性能差異將僅由平臺本身引起。如圖2所示,平均來言,TensorFlow處理227×227像素的RGB圖像需要420 ms,而SqueezeNet將處理相同圖像的時間縮短到320ms,加速了25%。


圖2 在TensorFlow上運行的SqueezeNet推理機與使用ARM Compute Library(ACL)構建的SqueezeNet推理機的性能。從頭開始構建簡單的推理引擎不僅需要較少的開發時間,而且相比現有的深度學習引擎,如TensorFlow,表現更加優秀。

為了更好地了解性能增益的來源,我們將執行過程分為兩部分:第一部分包括卷積、ReLU(線性整流函數)激活和級聯;第二部分包括池化和softmax功能。圖2所示的分析表明,SqueezeNet在第一部分中的性能相比TensorFlow提高23%,在第二部分中提高110%??紤]資源利用率,當在TensorFlow上運行時,平均CPU使用率為75%,平均內存使用量為9MB;當在SqueezeNet上運行時,平均CPU使用率為90%,平均內存使用量約為10MB。兩個原因帶來了性能的提升:首先,SqueezeNet提供了更好的NEON優化,所有ACL運算符都是使用NEON提供的運算符直接開發的,而TensorFlow則依靠ARM編譯器來提供NEON優化。其次,TensorFlow平臺本身可能會引起一些額外的性能開銷。

接下來,我們希望能夠從TensorFlow中榨出更多的性能,看看它是否能勝過我們構建的SqueezeNet推理機。一種常用的技術是使用矢量量化,使用8位權重以精度來換取性能。8位權重的使用,使得我們可以通過向量操作,只需一個指令便可計算多個數據單元。然而,這種優化是有代價的:它引入了重新量化和去量化操作。我們在TensorFlow中實現了這個優化,圖3比較了有無優化的性能。使用矢量量化將卷積性能提高了25%,但由于去量化和重新量化操作,也顯著地增加了開銷。總體而言,它將整個推理過程減慢了超過100毫秒。


圖3 有無矢量量化的TensorFlow性能。手動優化現有的深度學習平臺(如TensorFlow)很困難,可能不會帶來顯著的性能提升。

網絡連接是易失的,因此我們想要確保能夠在本地設備上實現某種形式的智能,使其能夠在ISP或網絡故障的情況下繼續運行。然而要想實現它,需要較高的計算性能和功耗。

盡管將服務遷移到云端能夠減少物聯網設備的功耗,但很難滿足實時性要求。而且現有的深度學習平臺是為了通用性任務而設計開發的,同時適用于訓練和推理任務,這意味著這些引擎未針對嵌入式推理任務進行優化。并且它們還依賴于裸機嵌入式系統上不易獲得的其他第三方庫,這些都使其非常難以移植。

通過使用ACL構建塊來建立嵌入式CNN推理引擎,我們可以充分利用SoC的異構計算資源獲得高性能。因此,問題變為是選擇移植現有引擎,還是從零開始構建它們更容易。我們的經驗表明,如果模型很簡單,相比之下從頭開始構建它們容易得多。而隨著模型越來越復雜,在某些情況下,可能我們遷移現有引擎相對更加高效。然而,考慮到嵌入式設備實際運行的任務,不大可能會需要用到復雜的模型。因此我們得出結論,從頭開始構建一個嵌入式推理引擎或許是向物聯網設備提供深度學習能力的可行方法。

更進一步

相比從頭開始手動構建模型,我們需要一種更方便的方式來在物聯網設備上提供深度學習能力。一個解決方案是實現一個深度學習的模型編譯器,可以將給定的模型經過優化,編譯為目標平臺上的可執行代碼。如圖4中間的圖所示,這種編譯器的前端可以從主要的深度學習平臺(包括MXNet、Caffe、TensorFlow等)解析模型。然后,優化器可以執行額外的優化,包括模型修剪,量化和異構執行。優化后,由代碼生成器生成目標平臺上可執行代碼,可以是ACL(用于ARM設備),TensorRT(用于Nvidia GPU)或其他ASIC設備。


圖4 物聯網設備服務架構。我們需要一個新的系統架構來實現物聯網設備上的深度學習:首先,我們需要直接編譯和優化深度學習模型生成目標設備上的可執行代碼; 其次,我們需要一個非常輕量級的操作系統,以實現多任務及其間的高效通信。IMU:慣性測量單元。

NNVM項目(github.com/dmlc/nnvm)是邁向這一目標的第一步。我們已經成功地擴展了NNVM來生成代碼,以便我們可以使用ACL來加速ARM設備上的深度學習操作。這種方法的另一個好處是,即使模型變得更加復雜,我們仍然可以輕松地在物聯網設備上實現它們。

當前的物聯網設備通常由于計算資源的限制而執行單個任務。然而,我們預計很快將有能夠執行多個任務的低功耗物聯網設備(例如,我們的Zuluko設備就包含了四個內核)。為了使用這些設備,我們需要一個非常輕量級的消息傳遞協議來連接不同的服務。

如圖4所示,物聯網設備的基本服務包括傳感,感知和決策。傳感節點涉及處理來自例如攝像機,慣性測量單元和車輪測距的原始傳感器數據。感知節點使用已處理的傳感器數據,并對所捕獲的信息進行解釋,例如對象標簽和設備位置。動作節點包含一組規則,用于確定在檢測到特定事件時如何響應,例如在檢測到所有者的臉部時解鎖門,或者當檢測到障礙物時調整機器人的運動路徑。Nanomsg(nanomsg.org)是一個非常輕量級的消息傳遞框架,非常適合類似的任務。另一個選擇是機器人操作系統,盡管我們發現對于物聯網設備來說,其在內存占用和計算資源需求方面顯得太重了。

為了有效地將深度學習與物聯網設備集成,我們開發了自己的操作系統,包括用于消費級傳感器輸入的傳感器接口,基于NNVM的編譯器,將現有的深度學習模型編譯并優化為可執行代碼,以及基于Nanomsg的消息傳輸框架來連接所有的節點。

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

    關注

    2911

    文章

    44803

    瀏覽量

    375016
  • 編譯器
    +關注

    關注

    1

    文章

    1637

    瀏覽量

    49191
  • 機器人操作系統

    關注

    0

    文章

    9

    瀏覽量

    5168

原文標題:如何使用 CNN 推理機在 IoT 設備上實現深度學習

文章出處:【微信號:AI_Thinker,微信公眾號:人工智能頭條】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    【「具身智能機器人系統」閱讀體驗】2.具身智能機器人的基礎模塊

    具身智能機器人的基礎模塊,這個是本書的第二部分內容,主要分為四個部分:機器人計算系統,自主機器人的感知系統,自主
    發表于 01-04 19:22

    【「具身智能機器人系統」閱讀體驗】2.具身智能機器人模型

    近年來,人工智能領域的大模型技術多個方向上取得了突破性的進展,特別是機器人控制領域展現出了巨大的潛力。“具身智能
    發表于 12-29 23:04

    【「具身智能機器人系統」閱讀體驗】1.初步理解具身智能

    (第3章到第6章)介紹具身智能機器人的基礎模塊,涵蓋機器人計算系統、自主機器人的感知系統、定位系統
    發表于 12-28 21:12

    Triton編譯器機器學習中的應用

    多種深度學習框架,如TensorFlow、PyTorch、ONNX等,使得開發者能夠輕松地將不同框架下訓練的模型部署到GPU上。 2. Triton編譯器的工作原理 Triton編譯器
    的頭像 發表于 12-24 18:13 ?433次閱讀

    Triton編譯器與其他編譯器的比較

    的GPU編程框架,使開發者能夠編寫出接近手工優化的高性能GPU內核。 其他編譯器 (如GCC、Clang、MSVC等): 定位:通用編譯器,支持多種編程語言,廣泛應用于各種軟件開發場景
    的頭像 發表于 12-24 17:25 ?408次閱讀

    Triton編譯器功能介紹 Triton編譯器使用教程

    。以下是 Triton 編譯器的一些功能介紹和使用教程。 Triton 編譯器功能介紹 多語言支持 :Triton 支持多種編程語言,使得開發者可以同一個
    的頭像 發表于 12-24 17:23 ?478次閱讀

    《具身智能機器人系統》第7-9章閱讀心得之具身智能機器人與大模型

    研讀《具身智能機器人系統》第7-9章,我被書中對大模型機器人技術融合的深入分析所吸引。第7章詳細闡述了ChatGPT for Robotics的核心技術創新:它摒棄了傳統的分層控制架
    發表于 12-24 15:03

    【「具身智能機器人系統」閱讀體驗】+數據具身人工智能中的價值

    嵌入式人工智能(EAI)將人工智能集成到機器人等物理實體中,使它們能夠感知、學習環境并與之動態交互。這種能力使此類機器人能夠人類社會中有效地提供商品及服務。 數據是一種貨幣化工具 數據是互
    發表于 12-24 00:33

    什么是嵌入式操作系統?

    機器人的大腦。它告訴機器人怎么工作,什么時候做什么事,怎么和它身體上的各種傳感和部件溝通,EOS是為嵌入式系統設計的專用操作系統。 那它到
    發表于 11-08 15:07

    開啟全新AI時代 智能嵌入式系統快速發展——“第六屆國產嵌入式操作系統技術與產業發展論壇”圓滿結束

    嵌入式系統是電子信息產業的基礎,是智能系統的核心。大模型催生AI走入千家萬戶、喚醒端側AI的需求爆發。以機器人、無人駕駛和智能制造為代表的智能嵌入式
    發表于 08-30 17:24

    第六屆國產嵌入式操作系統技術與產業發展論壇議程發布

    第30次)主題是“開啟全新AI時代、智能嵌入式操作系統的研究與應用”,我們將聚焦人工智能、聯網與嵌入式操作系統技術和生態發展,智能機器人
    發表于 07-26 10:54

    ROS讓機器人開發更便捷,基于RK3568J+Debian系統發布!

    ,簡單快捷地調用合適的算法庫,以提高開發效率,加快開發進程。 (2) 開源免費,架構精簡 ROS系統是一個開源免費,架構精簡的機器人操作系統
    發表于 07-09 11:38

    Al大模型機器人

    金航標kinghelm薩科微slkor總經理宋仕強介紹說,薩科微Al大模型機器人有哪些的優勢?薩科微AI大模型機器人由清華大學畢業的天才少年N博士和王博士團隊
    發表于 07-05 08:52

    基于鴻道(Intewell?)操作系統研發的農業機器人操作系統

    江蘇大學與科東軟件聯合研發“農業機器人操作系統”,并成立“農業機器人操作系統”聯合實驗室,奮力推進農業智能化,推動農業科技創新?!稗r業機器人
    的頭像 發表于 04-30 11:09 ?453次閱讀

    工業控制:鴻道(Intewell)操作系統工業機器人控制解決方案

    鴻道(Intewell)操作系統作為核心基礎軟件,構建機器人控制系統的底層技術平臺。系統支持Linux/Windows的實時擴展,設備上可同時運行單個非實時
    的頭像 發表于 03-14 10:19 ?588次閱讀
    工業控制:鴻道(Intewell)<b class='flag-5'>操作系統</b>工業<b class='flag-5'>機器人</b>控制解決方案
    主站蜘蛛池模板: 色依依视频视频在线观看| 九九美剧| 男人的天堂视频在线| 亚洲伊人网站| 欧美一级片免费观看| 18岁禁黄色| 国产精品资源站| 开心激情播播网| 人与牲动交xxxxbbbb高清| 午夜想想爱午夜剧场| 免费精品美女久久久久久久久久| 欧美专区欧美吧| baoyu168成人免费视频| 久久久网站亚洲第一| 人人草人人插| 手机看片福利日韩| 天天天操| 天天擦天天干| 特黄日韩免费一区二区三区| 欧美一级免费| 2015xxxx欧美| 中文字幕第二区| 羞羞答答91麻豆网站入口| 爱逼色| 68日本xxxxxxxxx| 717影院理论午夜伦八戒| 99久久精品费精品国产一区二区| 亚洲www色| 视频色www永久免费| 特级一级毛片视频免费观看| 婷婷综合色| 四虎现在的网址入口| 伦理一区二区三区| 久久国产精品99久久久久久老狼 | 久久影视一区| 亚洲成人毛片| 四虎www成人影院观看| 国产色妞妞在线视频免费播放| 丁香婷婷亚洲| 午夜一区二区在线观看| 午夜影院在线观看免费|