0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

為什么機器學(xué)習(xí)在嵌入式系統(tǒng)中不成功

Wildesbeast ? 來源:今日頭條 ? 作者:聞數(shù)起舞 ? 2020-02-12 16:12 ? 次閱讀

換個角度思考,深入研究嵌入式世界以及迄今為止機器學(xué)習(xí)行業(yè)無法解決的問題

Photo by Daniel Wiadro on Unsplash

如今,機器學(xué)習(xí)達到了頂峰,并最終在各個地方得到了應(yīng)用。 您可以在機場看到人臉識別系統(tǒng),并在Facebook中看到個性化廣告。

雖然,當(dāng)我們談?wù)搶L與嵌入式設(shè)備結(jié)合時,仍然存在很大差距。

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)核的浮點性能及其效率的估計。

我在大學(xué)里有幾門與ML相關(guān)的課程。 我們在功課上做了很多很酷的事情。 但是即使在那里我的4GB GTX1050也不足以訓(xùn)練所有模型。

Problem understanding is essential to build the right product

一般的ML工程師很少考慮計算資源。 此外,他/她很少關(guān)心內(nèi)存使用情況。 為什么? 因為價格便宜,甚至您的手機都具有不錯的CPU和大量內(nèi)存。

上次聚會中的照片時,手機上是否仍然缺少內(nèi)存? 想象一下,您使用的是具有256KB閃存的TrueTouch感應(yīng)控制器。 是的,256KB。 而且由于現(xiàn)有固件,您無法使用所有這些功能。 因此,大約100KB。 查看您上一次的模型的尺寸。 可能更大。

變得有趣了嗎? 讓我們繼續(xù):)

當(dāng)您聽到"嵌入式設(shè)備"時您怎么看? 想象一下圖片并牢記在心。

1.它是任何電器,甚至我的微波爐和洗衣機

Photo by Marcos Ramírez on Unsplash

嗯你是對的!

如今,幾乎所有的電氣設(shè)備都是嵌入式設(shè)備。 它內(nèi)部可能具有一個或幾個控制器來負(fù)責(zé)每個確切的功能:觸摸感應(yīng),發(fā)動機狀態(tài)監(jiān)控等。

2. Arduino或/和Raspberry PI

Photos by Harrison Broadbent on Unsplash

MAKEBLOCK Arduino MegaPi 編程學(xué)習(xí)主控板 10050

¥209

購買

恭喜,您再次正確!

它們是用于DIY項目的最受歡迎和使用最廣泛的工具包之一。 是的,它們是嵌入式設(shè)備。

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

我認(rèn)識幾個對Jetson Nano和類似設(shè)備感到興奮的AI工程師。 他們被認(rèn)為是嵌入式AI的未來。

Photo by Nvidia

現(xiàn)在。 請考慮"在生產(chǎn)級別使用了多少這種設(shè)備?"

答案-小

考慮一下您家中有多少個電氣設(shè)備。 然后在您的汽車中添加大量的控制器。 您工作中的安全系統(tǒng)。 我可以繼續(xù)很長的清單。

每個設(shè)備都有一個控制器。 通常,它是微型且超級便宜。 它無法與Jetson或Raspberry的資源和功能相提并論。

假設(shè)您有一個微控制器。 它的主要任務(wù)是處理您的手指觸摸屏幕。 它具有ARM Cortex-M0處理器,256KB內(nèi)存(其中只有80–120可用)。 這是一個實時系統(tǒng),因此您可以花很少的時間來推斷模型,例如100微秒。 您的目標(biāo)是在那里改善或替換某些算法。

祝您好運,歡迎來到"嵌入式AI"世界。

嵌入式世界"由資源有限的1-2美元成本的芯片組成。 這就是在生產(chǎn)水平上使用的東西。

2.純基礎(chǔ)設(shè)施

我一直在從事上述項目。 一切都很棒。 我開發(fā)了一個可能必須適合該微控制器的小型網(wǎng)絡(luò)。

Photo by Matty Lynn Barnes on Unsplash

是時候開始將模型從我的電腦轉(zhuǎn)移到設(shè)備了!

1.量化。

該處理器無法執(zhí)行浮點數(shù)運算。 即使可以,我們也不會使用它,因為這是一個非常復(fù)雜的操作,需要很多時間。

因此,我對權(quán)重量化進行了模型化-將值的連續(xù)范圍轉(zhuǎn)換為離散值的有限范圍。

你猜怎么著? PyTorch和TensorflowLite都不完全支持它。 它們不支持所有激活函數(shù)(盡管我使用了非常簡單的HardTanh)。 PyTorch甚至無法將量化模型保存到文件中。

所以,我不得不手工做。

2.推理代碼生成

您想在該控制器上運行模型。 對? 因此,您需要使用C代碼進行模型推理。

很難過,但您必須手動完成。 為什么? PyTorch沒有推理代碼生成的功能。 相比之下,TFLite具有功能,但功能相當(dāng)有限,并且不支持常見的激活函數(shù)。

因此,我再次手動完成。

我在工作中遇到了很多這樣的情況。 這不是PyTorch或TF方面的重拳,而是"呼救聲"。

*** ML社區(qū)的另一面是,正在尋找"嵌入式AI"的專業(yè)工具,但還找不到它。 ***

有什么好處嗎

我看到大型半導(dǎo)體公司對AI產(chǎn)生了極大的興趣,它們正在做非常有價值和重要的事情。 它們值得另一篇文章,因此我列出其中一些,以免使本文太長。

CMSIS-NN —用于Arm Cortex-M CPU的高效神經(jīng)網(wǎng)絡(luò)內(nèi)核

產(chǎn)生高效推理代碼的編譯器,這些推理代碼根據(jù)您擁有的硬件進行了優(yōu)化

還有很多其他很酷的東西

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 嵌入式系統(tǒng)
    +關(guān)注

    關(guān)注

    40

    文章

    3520

    瀏覽量

    128805
  • 機器學(xué)習(xí)
    +關(guān)注

    關(guān)注

    66

    文章

    8306

    瀏覽量

    131844
  • cnn
    cnn
    +關(guān)注

    關(guān)注

    3

    文章

    349

    瀏覽量

    21965
收藏 人收藏

    評論

    相關(guān)推薦

    嵌入式系統(tǒng)的未來趨勢有哪些?

    嵌入式系統(tǒng)是指將我們的操作系統(tǒng)和功能軟件集成于計算機硬件系統(tǒng)之中,形成一個專用的計算機系統(tǒng)。那么嵌入式
    發(fā)表于 09-12 15:42

    機器視覺嵌入式的應(yīng)用

    機器視覺嵌入式系統(tǒng)的應(yīng)用是一個廣泛而深入的話題,涉及到許多不同的領(lǐng)域和技術(shù)。 機器視覺
    的頭像 發(fā)表于 07-16 10:30 ?266次閱讀

    深度學(xué)習(xí)算法嵌入式平臺上的部署

    隨著人工智能技術(shù)的飛速發(fā)展,深度學(xué)習(xí)算法各個領(lǐng)域的應(yīng)用日益廣泛。然而,將深度學(xué)習(xí)算法部署到資源受限的嵌入式平臺上,仍然是一個具有挑戰(zhàn)性的任務(wù)。本文將從
    的頭像 發(fā)表于 07-15 10:03 ?732次閱讀

    嵌入式系統(tǒng)怎么學(xué)?

    、C++或者Python。這些語言嵌入式系統(tǒng)開發(fā)中都被廣泛應(yīng)用。 3、微處理器/微控制器架構(gòu):學(xué)習(xí)常見的微處理器和微控制器架構(gòu),如ARM、AVR、PIC等,了解其特性和應(yīng)用場景。
    發(fā)表于 07-02 10:10

    STMStudio連接R-Link不成功是怎么回事?

    連接R-Link不成功,怎么回事?
    發(fā)表于 05-07 07:05

    STM32中斷OSFlagPost不成功是為什么?

    STM32中斷OSFlagPost不成功,是為什么?
    發(fā)表于 04-23 07:44

    嵌入式熱門發(fā)展方向有哪些?

    ,嵌入式人工智能可以運用機器學(xué)習(xí)技術(shù)對圖像、視頻進行高精度解析,從而實現(xiàn)圖像識別、視頻剪輯、視頻智能關(guān)聯(lián)應(yīng)用等。傳感器網(wǎng)絡(luò)系統(tǒng)
    發(fā)表于 04-11 14:17

    ST485BDR-30度下串口通信不成功的原因?

    測試830pcs,反饋-30度下串口通信不成功
    發(fā)表于 03-19 06:03

    嵌入式系統(tǒng)發(fā)展前景?

    應(yīng)用領(lǐng)域。隨著汽車電子化和智能化程度的不斷提高,嵌入式系統(tǒng)將在汽車控制、安全系統(tǒng)、自動駕駛等方面發(fā)揮更為重要的作用。 工智能和機器學(xué)習(xí)技術(shù)的
    發(fā)表于 02-22 14:09

    嵌入式學(xué)習(xí)步驟

    開發(fā)板上測試固件以及實際設(shè)備上進行測試。 嵌入式系統(tǒng)的多樣化發(fā)展,它將更為廣泛地應(yīng)用于各個領(lǐng)域,實現(xiàn)智能化、網(wǎng)絡(luò)化、自動化的目標(biāo)。同時,隨著人工智能和機器
    發(fā)表于 02-02 15:24

    什么是嵌入式系統(tǒng)?嵌入式系統(tǒng)的具體應(yīng)用

    嵌入式,一般是指嵌入式系統(tǒng)。用于控制、監(jiān)視或者輔助操作機器和設(shè)備的裝置。
    的頭像 發(fā)表于 12-20 13:33 ?2132次閱讀

    navicat導(dǎo)入SQL文件不成功

    Navicat是一款功能強大的數(shù)據(jù)庫管理工具,可以幫助用戶輕松管理和操作數(shù)據(jù)庫。然而,有時用戶導(dǎo)入SQL文件時可能會遇到問題,導(dǎo)致導(dǎo)入不成功。本文將詳細(xì)介紹導(dǎo)入SQL文件不成功的原因和解
    的頭像 發(fā)表于 11-21 11:01 ?5415次閱讀

    基于ARM的嵌入式系統(tǒng)溫控儀表的應(yīng)用

    電子發(fā)燒友網(wǎng)站提供《基于ARM的嵌入式系統(tǒng)溫控儀表的應(yīng)用.pdf》資料免費下載
    發(fā)表于 10-27 09:01 ?0次下載
    基于ARM的<b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b><b class='flag-5'>在</b>溫控儀表<b class='flag-5'>中</b>的應(yīng)用

    零基礎(chǔ)學(xué)習(xí)嵌入式,能學(xué)會嗎?

    學(xué)過計算機相關(guān)專業(yè)的,嵌入式是技術(shù)類的知識,有計算機相關(guān)知識學(xué)習(xí)過程中會更加容易上手。 嵌入式定義 嵌入式系統(tǒng)是一種專用的計算機
    的頭像 發(fā)表于 10-13 15:42 ?470次閱讀

    嵌入式Linux磁場測量系統(tǒng)的應(yīng)用

    電子發(fā)燒友網(wǎng)站提供《嵌入式Linux磁場測量系統(tǒng)的應(yīng)用.pdf》資料免費下載
    發(fā)表于 10-11 10:11 ?0次下載
    <b class='flag-5'>嵌入式</b>Linux<b class='flag-5'>在</b>磁場測量<b class='flag-5'>系統(tǒng)</b><b class='flag-5'>中</b>的應(yīng)用