色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

STM32Cube.AI庫的高級特性

STM32單片機(jī) ? 來源:意法半導(dǎo)體中國 ? 作者:意法半導(dǎo)體中國 ? 2021-11-16 16:59 ? 次閱讀

STM32Cube.AI意法半導(dǎo)體AI生態(tài)系統(tǒng)的一部分,是STM32Cube的一個擴(kuò)展包,它可以自動轉(zhuǎn)換和優(yōu)化預(yù)先訓(xùn)練的神經(jīng)網(wǎng)絡(luò)模型并將生成的優(yōu)化庫集成到用戶項(xiàng)目中,從而擴(kuò)展了STM32CubeMX的功能。它還提供幾種在桌面PC和STM32上驗(yàn)證神經(jīng)網(wǎng)絡(luò)模型以及測量模型性能的方法,而無需用戶手工編寫專門的C語言代碼。

上一篇文章大致介紹了STMCube.AI的基本特性,以及其工作流程。

本文將更深入地介紹它的一些高級特性。將涉及以下主題:

運(yùn)行時環(huán)境支持:Cube.AI vs TensorFlow Lite

量化支持

圖形流與存儲布局優(yōu)化

可重定位的二進(jìn)制模型支持

運(yùn)行時環(huán)境支持:Cube.AI vs TensorFlow Lite

STM32Cube.AI支持兩種針對不同應(yīng)用需求的運(yùn)行時環(huán)境:Cube.AI和TensorFlow Lite。作為默認(rèn)的運(yùn)行時環(huán)境,Cube.AI是專為STM32高度優(yōu)化的機(jī)器學(xué)習(xí)庫。而TensorFlow Lite for Microcontroller是由谷歌設(shè)計(jì),用于在各種微控制器或其他只有幾KB存儲空間的設(shè)備上運(yùn)行機(jī)器學(xué)習(xí)模型的。其被廣泛應(yīng)用于基于MCU的應(yīng)用場景。STM32Cube.AI集成了一個特定的流程,可以生成一個即時可用的STM32 IDE項(xiàng)目,該項(xiàng)目內(nèi)嵌TensorFlow Lite for Microcontrollers運(yùn)行時環(huán)境(TFLm)以及相關(guān)的TFLite模型。這可以被看作是Cube.AI運(yùn)行時環(huán)境的一個替代方案,讓那些希望擁有一個跨多個項(xiàng)目的通用框架的開發(fā)人員也有了選擇。

雖然這兩種運(yùn)行時環(huán)境都是為資源有限的MCU而設(shè)計(jì),但Cube.AI在此基礎(chǔ)上針對STM32的獨(dú)特架構(gòu)進(jìn)行了進(jìn)一步優(yōu)化。因此,TensorFlow Lite更適合有跨平臺可移植性需求的應(yīng)用,而Cube.AI則更適合對計(jì)算速度和內(nèi)存消耗有更高要求的應(yīng)用。

下表展示了兩個運(yùn)行時環(huán)境之間的性能比較(基于一個預(yù)訓(xùn)練的神經(jīng)網(wǎng)絡(luò)參考模型)。評價指標(biāo)是在STM32上的推斷時間和內(nèi)存消耗。

8f1e0a68-46ab-11ec-b939-dac502259ad0.png

如表中所示,對于同一模型,Cube.AI運(yùn)行時環(huán)境比TFLite運(yùn)行時環(huán)境節(jié)約了大概20%的flash存儲和約8%的RAM存儲。此外,它的運(yùn)行速度幾乎比TFLite運(yùn)行時環(huán)境快了2倍。

對于TFLite模型,用戶可以在STM32Cube.AI的網(wǎng)絡(luò)配置菜單中對2個運(yùn)行時環(huán)境進(jìn)行選擇。

量化支持

量化是一種被廣泛使用的優(yōu)化技術(shù),它將32位浮點(diǎn)模型壓縮為位數(shù)更少的整數(shù)模型,在精度只略微下降的情況下,減少了存儲大小和運(yùn)行時的內(nèi)存峰值占用,也減少了CPU/MCU的推斷時間和功耗。量化模型對整數(shù)張量而不是浮點(diǎn)張量執(zhí)行部分或全部操作。它是面向拓?fù)洹⑻卣饔成淇s減、剪枝、權(quán)重壓縮等各種優(yōu)化技術(shù)的重要組成部分,可應(yīng)用在像MCU一樣資源受限的運(yùn)行時環(huán)境。

通常有兩種典型的量化方法:訓(xùn)練后量化(PTQ)和量化訓(xùn)練(QAT)。PTQ相對容易實(shí)現(xiàn),它可以用有限的具有代表性的數(shù)據(jù)集來量化預(yù)先訓(xùn)練好的模型。而QAT是在訓(xùn)練過程中完成的,通常具有更高的準(zhǔn)確度。

STM32Cube.AI通過兩種不同的方式直接或間接地支持這兩種量化方法:

首先,它可以用來部署一個由PTQ或QAT過程生成的TensorFlow Lite量化模型。在這種情況下,量化是由TensorFlow Lite框架完成的,主要是通過“TFLite converter” utility導(dǎo)出TensorFlow Lite文件。

其次,其命令行接口(CLI)還集成了一個內(nèi)部的訓(xùn)練后量化(PTQ)的過程,支持使用不同的量化方案對預(yù)訓(xùn)練好的Keras模型進(jìn)行量化。與使用TFLite Converter工具相比,該內(nèi)部量化過程提供了更多的量化方案,并在執(zhí)行時間和精確度方面有更好的表現(xiàn)。

下表顯示了在STM32上部署量化模型(與原有浮點(diǎn)模型相比)的好處。此表使用FD-MobileNet作為基準(zhǔn)模型,共有12層,參數(shù)大小145k,MACC操作數(shù)24M,輸入尺寸為224x224x3。

8fa21bfa-46ab-11ec-b939-dac502259ad0.png

從表中很容易看出,量化模型節(jié)省了約4倍的flash存儲和RAM存儲,且運(yùn)行速度提高了約3倍,而精確度僅僅下降了0.7%。

如果已經(jīng)安裝了X-Cube-AI包,用戶可以通過以下路徑找到關(guān)于如何使用命令行界面(CLI)進(jìn)行量化的教程

C:UsersusernameSTM32CubeRepositoryPacksSTMicroelectronicsX-CUBE-AI7.0.0Documentationquantization.html。

在文檔的末尾還附上了一個快速實(shí)踐示例:“量化一個MNIST模型”。

圖形流與存儲布局優(yōu)化

除了量化技術(shù),STM32Cube.AI還通過使用其C代碼生成器的優(yōu)化引擎,針對推理時間優(yōu)化內(nèi)存使用(RAM & ROM)。該引擎基于無數(shù)據(jù)集的方法,無需驗(yàn)證或測試數(shù)據(jù)集來應(yīng)用壓縮和優(yōu)化算法

第一種方法:權(quán)重/偏置項(xiàng)壓縮,采用k -均值聚類算法。該壓縮算法僅適用于全連接層。其優(yōu)勢是壓縮速度快,但是結(jié)果并不是無損的,最終的精度可能會受到影響。STM32Cube.AI提供“驗(yàn)證”功能,用于對所生成的C模型中產(chǎn)生的誤差進(jìn)行評估。

“壓縮”選項(xiàng)可以在STM32Cube.AI的網(wǎng)絡(luò)配置中激活,如下圖所示:

第二種方法:操作融合,通過合并層來優(yōu)化數(shù)據(jù)布局和相關(guān)的計(jì)算核。轉(zhuǎn)換或優(yōu)化過程中會刪除一些層(如“Dropout”、“Reshape”),而有些層(如非線性層以及卷積層之后的池化層)會被融合到前一層中。其好處是轉(zhuǎn)換后的網(wǎng)絡(luò)通常比原始網(wǎng)絡(luò)層數(shù)少,降低了存儲器中的數(shù)據(jù)吞吐需求。

最后一種方法是優(yōu)化的激活項(xiàng)存儲。其在內(nèi)存中定義一個讀寫塊來存儲臨時的隱藏層值(激活函數(shù)的輸出)。此讀寫塊可以被視為推理函數(shù)使用的暫存緩沖區(qū),在不同層之間被重復(fù)使用。因此,激活緩沖區(qū)的大小由幾個連續(xù)層的最大存儲需求決定。比如,假設(shè)有一個3層的神經(jīng)網(wǎng)絡(luò),每一層的激活值分別有5KB, 12KB和3KB,那么優(yōu)化后的激活緩沖區(qū)大小將是12KB,而不是20KB。

可重定位的二進(jìn)制模型支持

非可重定位方法(或“靜態(tài)”方法)指的是:生成的神經(jīng)網(wǎng)絡(luò)C文件被編譯并與最終用戶應(yīng)用程序堆棧靜態(tài)鏈接在一起。

如下圖所示,所有對象(包括神經(jīng)網(wǎng)絡(luò)部分和用戶應(yīng)用程序)根據(jù)不同的數(shù)據(jù)類型被一起鏈接到不同的部分。在這種情況下,當(dāng)用戶想要對功能進(jìn)行部分更新時(比如只更新神經(jīng)網(wǎng)絡(luò)部分),將需要對整個固件進(jìn)行更新。

相反,可重定位二進(jìn)制模型指定一個二進(jìn)制對象,該對象可以安裝和執(zhí)行在STM32內(nèi)存子系統(tǒng)的任何位置。它是所生成的神經(jīng)網(wǎng)絡(luò)C文件的編譯后的版本,包括前向核函數(shù)以及權(quán)重。其主要目的是提供一種靈活的方法來更新AI相關(guān)的應(yīng)用程序,而無需重新生成和刷寫整個終端用戶固件。

生成的二進(jìn)制對象是一個輕量級插件。它可以從任何地址(位置無關(guān)的代碼)運(yùn)行,其數(shù)據(jù)也可放置于內(nèi)存中的任何地方(位置無關(guān)的數(shù)據(jù))。

STM32Cube.AI簡單而高效的AI可重定位運(yùn)行時環(huán)境可以將其實(shí)例化并使用它。STM32固件中沒有內(nèi)嵌復(fù)雜的資源消耗型動態(tài)鏈接器,其生成的對象是一個獨(dú)立的實(shí)體,運(yùn)行時不需要任何外部變量或函數(shù)。

下圖的左側(cè)部分是神經(jīng)網(wǎng)絡(luò)的可重定位二進(jìn)制對象,它是一個自給自足的獨(dú)立實(shí)體,鏈接時將被放置于終端用戶應(yīng)用程序的一個單獨(dú)區(qū)域中(右側(cè)部分)。它可以通過STM32Cube.AI的可重定位運(yùn)行時環(huán)境被實(shí)例化以及動態(tài)鏈接。因此,用戶在更新AI模型時只需要更新這部分二進(jìn)制文件。另外,如果有進(jìn)一步的靈活性需求,神經(jīng)網(wǎng)絡(luò)的權(quán)重也可以選擇性地被生成為獨(dú)立的目標(biāo)文件。

可重定位網(wǎng)絡(luò)可以在STM32Cube.AI的高級設(shè)置中激活

最后,作為意法半導(dǎo)體人工智能生態(tài)系統(tǒng)的核心工具,STM32Cube.AI提供許多基本和高級功能,以幫助用戶輕松創(chuàng)建高度優(yōu)化和靈活的人工智能應(yīng)用。如需詳細(xì)了解特定解決方案或技術(shù)細(xì)節(jié),請隨時關(guān)注我們的后續(xù)文章。

責(zé)任編輯:haq

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

    關(guān)注

    2270

    文章

    10910

    瀏覽量

    356616
  • 意法半導(dǎo)體
    +關(guān)注

    關(guān)注

    31

    文章

    3144

    瀏覽量

    108740
  • AI
    AI
    +關(guān)注

    關(guān)注

    87

    文章

    31155

    瀏覽量

    269494

原文標(biāo)題:AI技術(shù)專題之五 |專為STM32 MCU優(yōu)化的STM32Cube.AI庫

文章出處:【微信號:STM32_STM8_MCU,微信公眾號:STM32單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    如何在STM32f4系列開發(fā)板上部署STM32Cube.AI

    已下載STM32Cube.AI擴(kuò)展包,但是無法使用,感覺像是沒有部署AI模型,我是想要通過攝像頭拍照,上傳圖像后,經(jīng)過開發(fā)板處理器進(jìn)行AI模型處理識別過后,告訴我識別結(jié)果,顯示在TFLCD屏幕上
    發(fā)表于 11-18 09:39

    Wilink8高級特性

    電子發(fā)燒友網(wǎng)站提供《Wilink8高級特性.pdf》資料免費(fèi)下載
    發(fā)表于 11-08 15:58 ?0次下載
    Wilink8<b class='flag-5'>高級</b><b class='flag-5'>特性</b>

    被稱為“小號HBM”,華邦電子CUBE進(jìn)階邊緣AI存儲

    ,分享了華邦推出的CUBE產(chǎn)品在邊緣AI上的應(yīng)用優(yōu)勢以及對存儲應(yīng)用市場的看法等話題。 ? CUBE :小號HBM ? “華邦電子近兩三年都在推CUBE產(chǎn)品,我們可以把
    的頭像 發(fā)表于 07-01 16:21 ?3138次閱讀

    CubeIDE生成的代碼框架會卡在MX_X_CUBE_AI_Process()函數(shù)中是怎么回事?

    當(dāng)我將網(wǎng)絡(luò)模型部署到STM32F407VGT6中時,CubeIDE生成的代碼框架會卡在MX_X_CUBE_AI_Process()函數(shù)中是怎么回事?CUbeAI的版本是9.0。期待您的回復(fù),謝謝
    發(fā)表于 05-30 06:11

    STM CUBE AI錯誤導(dǎo)入onnx模型報錯的原因?

    使用cube-AI分析模型時報錯,該模型是pytorch的cnn轉(zhuǎn)化成onnx ``` Neural Network Tools for STM32AI v1.7.0 (STM.ai v8.0.0-19389) INTER
    發(fā)表于 05-27 07:15

    STM32Cube和standard peripheral library有什么區(qū)別?

    STM32Cube和standard peripheral library有什么區(qū)別
    發(fā)表于 05-16 06:52

    請問STM32 CUBE穩(wěn)定嗎?

    我以前一直是用官方開發(fā)1系列的。stm32 cube也出來一段時間了,現(xiàn)在穩(wěn)定性如何了,需要用到usb和sd卡fat文件系統(tǒng),cube里有沒有提供,穩(wěn)定性如何呢? 還有
    發(fā)表于 05-16 06:24

    請問STM32cube與3.5的外設(shè)有區(qū)別嗎?

    請問STM32cube與3.5的外設(shè)有區(qū)別嗎
    發(fā)表于 05-15 06:57

    請問stm32cube ide如何編譯底層

    把之前在mdk5中編譯正常的freemodbus 移植到 cube ide 后,無法編譯通過。 看debug 是 無法編譯m3的底層的方法。cmsis_gcc.h D
    發(fā)表于 04-10 07:35

    擴(kuò)展包x-cube-ai能實(shí)現(xiàn)SVM支持向量機(jī)嗎?

    擴(kuò)展包x-cube-ai能實(shí)現(xiàn)SVM支持向量機(jī)嘛
    發(fā)表于 03-22 07:26

    cubeMX在加入cube-ai分析模型時提示下載GNU tools for STM32卡死如何解決?

    在使用cube-ai時,會彈出對話框,并一致卡死在0%,嘗試手動安裝GNU工具也無效。請問該如何解決?
    發(fā)表于 03-21 07:42

    STM32H750可以使用Cube.AI嗎?

    STM32H750,可以使用Cube.AI
    發(fā)表于 03-19 06:14

    cube AI導(dǎo)入Keras模型出錯怎么解決?

    我嘗試過cube AI的version7.1.0、6.0.0、5.1.2、4.1.0,導(dǎo)入Keras都是這個報錯,求解答 E010(InvalidModelError): Couldn&
    發(fā)表于 03-18 06:39

    使用cube-AI分析模型時報錯的原因有哪些?

    使用cube-AI分析模型時報錯,該模型是pytorch的cnn轉(zhuǎn)化成onnx ``` Neural Network Tools for STM32AI v1.7.0 (STM.ai v8.0.0-19389) INTER
    發(fā)表于 03-14 07:09

    cube.ai帶有的analyse功能要求下載GNU工具卡住了是怎么回事?

    cube.ai帶有的analyse功能要求我下載GNU工具,但是卡住
    發(fā)表于 03-12 06:23
    主站蜘蛛池模板: 美女视频黄a视频全免费网站色窝| 九九热最新视频| 一区二区不卡在线视频| 无码欧美喷潮福利XXXX| 乳巨揉みま痴汉电车中文字幕动漫| 免费精品美女久久久久久久久| 精品国产影院| 娇妻让壮男弄的流白浆| 国产专区青青草原亚洲| 国产午夜精品久久久久婷婷| 国产日韩精品SUV| 国产人妻人伦精品9| 国产无遮挡又黄又爽在线视频 | 最近中文字幕完整版免费| 一区在线观看在线| 中国老妇xxxhd| 2017最新伦理伦理片67| 97人人超碰国产精品最新蜜芽| 中文字幕在线播放| 97一期涩涩97片久久久久久久| A级毛片无码久久精品免费| 超碰97人人做人人爱网站| 动漫美女人物被黄漫在线看| 国产成人拍精品视频网| 国产毛多水多高潮高清| 好吊射视频988gaocom| 久久vs国产| 麻花传媒XK在线观看| 欧美 国产 日产 韩国 在线| 日本黄色网站在线观看| 午夜理伦片免费| 亚洲精品国产A久久久久久| 一本道在线综合久久88| 5g天天奭视频| 超碰免费视频caopoom9| 国产精品一区二区激情| 九九热这里有精品| 欧美高清 videos sexo| 色窝窝777欧美午夜精品影院| 亚洲国产成人精品无码区APP | 久久亚洲伊人中字综合精品|