換個角度思考,深入研究嵌入式世界以及迄今為止機器學習行業(yè)無法解決的問題
Photo by Daniel Wiadro on Unsplash
如今,機器學習達到了頂峰,并最終在各個地方得到了應用。 您可以在機場看到人臉識別系統(tǒng),并在Facebook中看到個性化廣告。
雖然,當我們談論將ML與嵌入式設備結合時,仍然存在很大差距。
1.我們不了解什么是嵌入式世界
使用ML,我們曾經(jīng)擁有巨大的計算能力。
AlexNet需要727 MegaFlops和235Mb的內(nèi)存來處理小的227x227px圖像。 例如,Google Nexus S上的ARM Cortex-A8每秒可產(chǎn)生66個MegaFlops。 因此,您必須等待?11秒才能進行推斷。 好慢??!
· FLOP —浮點運算
查看更多信息:各種CNN的內(nèi)存消耗和FLOP計數(shù)以及ARM內(nèi)核的浮點性能及其效率的估計。
我在大學里有幾門與ML相關的課程。 我們在功課上做了很多很酷的事情。 但是即使在那里我的4GB GTX1050也不足以訓練所有模型。
Problem understanding is essential to build the right product
一般的ML工程師很少考慮計算資源。 此外,他/她很少關心內(nèi)存使用情況。 為什么? 因為價格便宜,甚至您的手機都具有不錯的CPU和大量內(nèi)存。
上次聚會中的照片時,手機上是否仍然缺少內(nèi)存? 想象一下,您使用的是具有256KB閃存的TrueTouch感應控制器。 是的,256KB。 而且由于現(xiàn)有固件,您無法使用所有這些功能。 因此,大約100KB。 查看您上一次的模型的尺寸。 可能更大。
變得有趣了嗎? 讓我們繼續(xù):)
當您聽到"嵌入式設備"時您怎么看? 想象一下圖片并牢記在心。
1.它是任何電器,甚至我的微波爐和洗衣機
Photo by Marcos Ramírez on Unsplash
嗯你是對的!
如今,幾乎所有的電氣設備都是嵌入式設備。 它內(nèi)部可能具有一個或幾個控制器來負責每個確切的功能:觸摸感應,發(fā)動機狀態(tài)監(jiān)控等。
Photos by Harrison Broadbent on Unsplash
MAKEBLOCK Arduino MegaPi 編程學習主控板 10050
¥209
購買
恭喜,您再次正確!
它們是用于DIY項目的最受歡迎和使用最廣泛的工具包之一。 是的,它們是嵌入式設備。
3. Jetson Nano和類似產(chǎn)品
Photo by NVIDIA
moft 英偉達NVIDIA Jetson Nano TX2嵌入式開發(fā)套件nvidia AGX開發(fā)板 Jetson Nano【開13%增票】
¥846
購買
再次正確。
這是一個特殊的開發(fā)套件" aka mini-computer",專門為在其上運行ML模型而開發(fā)。 它非常強大,說實話,超級性感。
但是這里有些遺漏
我有很多朋友正在做很棒的硬件寵物項目。 他們通常在那里使用Arduino或STM32(又名Hardcore
Arduino)。
Smart helmet, Robotic car and ALU
我認識幾個對Jetson Nano和類似設備感到興奮的AI工程師。 他們被認為是嵌入式AI的未來。
Photo by Nvidia
現(xiàn)在。 請考慮"在生產(chǎn)級別使用了多少這種設備?"
答案-小
考慮一下您家中有多少個電氣設備。 然后在您的汽車中添加大量的控制器。 您工作中的安全系統(tǒng)。 我可以繼續(xù)很長的清單。
每個設備都有一個控制器。 通常,它是微型且超級便宜。 它無法與Jetson或Raspberry的資源和功能相提并論。
假設您有一個微控制器。 它的主要任務是處理您的手指觸摸屏幕。 它具有ARM Cortex-M0處理器,256KB內(nèi)存(其中只有80–120可用)。 這是一個實時系統(tǒng),因此您可以花很少的時間來推斷模型,例如100微秒。 您的目標是在那里改善或替換某些算法。
祝您好運,歡迎來到"嵌入式AI"世界。
嵌入式世界"由資源有限的1-2美元成本的芯片組成。 這就是在生產(chǎn)水平上使用的東西。
2.純基礎設施
我一直在從事上述項目。 一切都很棒。 我開發(fā)了一個可能必須適合該微控制器的小型網(wǎng)絡。
Photo by Matty Lynn Barnes on Unsplash
是時候開始將模型從我的電腦轉移到設備了!
1.量化。
該處理器無法執(zhí)行浮點數(shù)運算。 即使可以,我們也不會使用它,因為這是一個非常復雜的操作,需要很多時間。
因此,我對權重量化進行了模型化-將值的連續(xù)范圍轉換為離散值的有限范圍。
你猜怎么著? PyTorch和TensorflowLite都不完全支持它。 它們不支持所有激活函數(shù)(盡管我使用了非常簡單的HardTanh)。 PyTorch甚至無法將量化模型保存到文件中。
所以,我不得不手工做。
2.推理代碼生成
您想在該控制器上運行模型。 對? 因此,您需要使用C代碼進行模型推理。
很難過,但您必須手動完成。 為什么? PyTorch沒有推理代碼生成的功能。 相比之下,TFLite具有功能,但功能相當有限,并且不支持常見的激活函數(shù)。
因此,我再次手動完成。
我在工作中遇到了很多這樣的情況。 這不是PyTorch或TF方面的重拳,而是"呼救聲"。
*** ML社區(qū)的另一面是,正在尋找"嵌入式AI"的專業(yè)工具,但還找不到它。 ***
有什么好處嗎
我看到大型半導體公司對AI產(chǎn)生了極大的興趣,它們正在做非常有價值和重要的事情。 它們值得另一篇文章,因此我列出其中一些,以免使本文太長。
CMSIS-NN —用于Arm Cortex-M CPU的高效神經(jīng)網(wǎng)絡內(nèi)核
產(chǎn)生高效推理代碼的編譯器,這些推理代碼根據(jù)您擁有的硬件進行了優(yōu)化
還有很多其他很酷的東西
-
嵌入式系統(tǒng)
+關注
關注
41文章
3604瀏覽量
129562 -
機器學習
+關注
關注
66文章
8425瀏覽量
132770 -
cnn
+關注
關注
3文章
353瀏覽量
22250
發(fā)布評論請先 登錄
相關推薦
評論