本帖最后由 面壁深功 于 2017-9-19 08:21 編輯
有預(yù)測說,從現(xiàn)在到2020年,人類社會將會有500億個設(shè)備聯(lián)網(wǎng),這意味著我們會有更多的數(shù)據(jù)需要處理,會有更大的流量進入云中,30年后我們腳上的鞋的智能程度可能會比我們的大腦還要高。 今天IoT的部署帶來了很多問題,諸如帶寬、時延、可靠性和安全性。基于云的模型很難解決這些問題,那么我們?nèi)绾尾拍軓脑浦蟹至鳎瑤砀鄬崟r性,帶來與“人的智能”同級別的設(shè)備? Movidius™神經(jīng)計算棒的誕生,就是為了解決這個問題。 在2017年9月4日的Movidius™神經(jīng)計算棒閉門研討會上,英特爾官方為大家詳細介紹了這款產(chǎn)品,以下為演講實錄精華版。 一、Movidius™神經(jīng)計算棒是什么? Movidius™神經(jīng)計算棒是世界上首個基于USB模式的深度學(xué)習(xí)推理工具和獨立的人工智能加速器,可以用它來做樣機、調(diào)試并且驗證、部署AI網(wǎng)絡(luò)。基于低功耗及USB接口,它可以很輕松地被應(yīng)用到各個行業(yè),對于開發(fā)者來說使用也很方便,出差時可以直接放進你的上衣口袋。 當(dāng)下熱門的人工智能設(shè)備,如安全攝像頭、VR、無人機、智能家居等等,都需要實時的圖象處理、機器視覺和人工智能,并且需要在很低的功率之下運行。而Movidius™神經(jīng)計算棒內(nèi)置的Myriad 2 VPU提供了強大且高效的性能,以便在設(shè)備上直接運行實時深度神經(jīng)網(wǎng)絡(luò)(DNN),這使得各種人工智能應(yīng)用都能離線部署,這也是英特爾豐富的軟件和硬件解決方案的一部分,是解決AI數(shù)據(jù)洪流所帶來的挑戰(zhàn)的利器。 二、Movidius™神經(jīng)計算棒有哪些特性? Movidius™神經(jīng)計算棒的特性包括:可以支持深度神經(jīng)網(wǎng)絡(luò),可以做樣機調(diào)試和部署。它也可以把深度神經(jīng)網(wǎng)絡(luò)部署在設(shè)備上運行,換句話說你可以在不聯(lián)網(wǎng)、不用云的前提下,實時執(zhí)行推理或者物體鑒別、圖像鑒別,或者是每幀視頻的鑒別,甚至可以在同一個平臺上使用多個神經(jīng)計算棒,讓你的應(yīng)用在神經(jīng)計算棒上實現(xiàn),達到擴展性。所有這些都是通過USB實現(xiàn),不需要任何外部的支持。 三、Movidius™神經(jīng)計算棒兼容性如何? Movidius™神經(jīng)計算棒目前可以支持Ubuntu 16.04操作系統(tǒng),但是它并不僅僅是一個硬件設(shè)備,作為一個良好的開發(fā)工具,要有很好的軟件支持,英特爾也為此做出了諸多努力,提供了一系列包括API在內(nèi)的開發(fā)者工具包進行支持。 那么,英特爾為開發(fā)者們提供了哪些開發(fā)者工具?聽聽Ashwin Vijayakumar先生怎么說:英特爾新技術(shù)事業(yè)部應(yīng)用架構(gòu)師 Ashwin Vijayakumar先生。 四、Movidius™神經(jīng)計算棒如何運行? 以前面提到的“貓機大戰(zhàn)”為例,想要解決這個問題,需要兩個部分:第一是訓(xùn)練,第二是推理。 如果要進行訓(xùn)練,你需要構(gòu)建一個深度的神經(jīng)網(wǎng)絡(luò)模型,讓機器可以鑒別出這是一只貓還是一只狗,還是地面的一個污跡。當(dāng)構(gòu)建好這個模型之后,就需要將其部署在一個低功耗的設(shè)備上,對實際的場景進行識別,這就是推理。于是,你把模型交給機器,機器會實時收到信息,并使用剛才提到的模型,把貓和需要清掃的垃圾區(qū)分開來,這就是NCS(即神經(jīng)計算棒)的工作,而SDK會幫助開發(fā)者完成這樣的工作。 英特爾有不同解決方案來做模型訓(xùn)練,你可以選擇使用FPGA、英特爾至強系列處理器來訓(xùn)練你的網(wǎng)絡(luò),完成訓(xùn)練之后,就可以得到模型。通過調(diào)用SDK中的接口,可以方便的在主機(NCS所連接的計算機)與NCS之間通信。NCS利用訓(xùn)練好的網(wǎng)絡(luò)模型計算出圖像分析的結(jié)果,并傳輸?shù)街鳈C上,完成推理工作。 開發(fā)者是否要完成所有設(shè)置工作?當(dāng)然不用。 英特爾打造了模塊化設(shè)計,開發(fā)者選擇使用SDK的一小部分即可。 如果你是一個網(wǎng)絡(luò)架構(gòu)師或者數(shù)字科學(xué)家,主要目標(biāo)就是打造一個非常好的、經(jīng)過完整優(yōu)化的網(wǎng)絡(luò)來滿足一個特定應(yīng)用的需求,這時有兩個工具可以為你提供很好的幫助: 首先是Profiler,它可以把你的模型進行提取,告訴你網(wǎng)絡(luò)中的每一層的執(zhí)行,哪一層可以在NCS上進行,它會給你非常詳細的信息,包括帶寬,還有你的執(zhí)行類型。如果說對這些層的性能在NCS上并不滿意,還可以進行一個回歸,回歸到之前的網(wǎng)絡(luò)上,然后再反向執(zhí)行,在Profiler再一次執(zhí)行,直到你對網(wǎng)絡(luò)性能滿意為止,并且完成了最后的優(yōu)化。 當(dāng)你的網(wǎng)絡(luò)架構(gòu)已經(jīng)完成,準備進入到下一階段時,Checker工具可以讓你盡可能接近于終端應(yīng)用,比如說一張貓咪的照片放在NCS上,看它具體的性能表現(xiàn)怎么樣。 作為網(wǎng)絡(luò)架構(gòu)師,你的工作就已經(jīng)完成了,然后把后續(xù)工作交給你的同事。這時,一名應(yīng)用工程師就要依賴于已經(jīng)設(shè)定好的網(wǎng)絡(luò),設(shè)計完的網(wǎng)絡(luò)集成到應(yīng)用環(huán)境中,比如設(shè)計一個可以更好地規(guī)劃路線的智能吸塵器。 這時也有兩個工具可以幫上忙:第一個就是Compiler——使用者必須對之前完成的網(wǎng)絡(luò)架構(gòu)文件進行轉(zhuǎn)碼。在使用Compiler時,你給它一個輸入,然后它就會有一個輸出,整個過程自動完成。 圖像文件必須加載到NCS當(dāng)中,這時API框架就會發(fā)生作用——用戶可以把圖像文件加載到NCS上,這個操作在整個開發(fā)過程中只需要做一次就可以完成。系統(tǒng)重啟之后,繼續(xù)把圖像文件上傳到NCS中。在接下來的推理過程中,只需要抓取一個圖像放到NCS上,NCS就可以進行推理,有了這個文件,NCS就可以捕捉其他圖像幀,然后加以分析。以上所有工作都會在后臺完成,而CPU可以什么都不做,NCS則會識別圖像,會告訴你圖像上是貓是狗還是其他什么,它會給不同的可能性并進行權(quán)重的加權(quán),然后你判斷這個答案的對錯,或是對它重新解讀。 英特爾提供的API框架十分豐富,支持C語言、Python等。 除此之外,產(chǎn)品現(xiàn)在已經(jīng)支持了卷積神經(jīng)網(wǎng)絡(luò),但是必須在Caffe上進行訓(xùn)練,不過馬上就可以支持其他框架了。為了幫助大家快速完成部署,并且啟動設(shè)計,在開發(fā)階段英特爾還把那些預(yù)訓(xùn)練的網(wǎng)絡(luò)集成到了NCS當(dāng)中,如GoogleNet、Alexnet、SqueezeNet,還有CaffeNet。 當(dāng)然,上述的網(wǎng)絡(luò)僅僅是一小部分,之前談到的Profiler,可以幫助你訓(xùn)練自己的網(wǎng)絡(luò),但是有一點一定要確保,它必須要與所支持的計算層相匹配。
|