日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

STM32Cube.AI庫的高級特性

STM32單片機 ? 來源:意法半導體中國 ? 作者:意法半導體中國 ? 2021-11-16 16:59 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

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

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

量化支持

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

可重定位的二進制模型支持

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

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

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

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

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

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

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

量化支持

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

可重定位的二進制模型支持

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

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

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

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

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

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

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

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

責任編輯:haq

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

    關(guān)注

    2313

    文章

    11195

    瀏覽量

    374754
  • 意法半導體
    +關(guān)注

    關(guān)注

    31

    文章

    3409

    瀏覽量

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

    關(guān)注

    91

    文章

    41315

    瀏覽量

    302694

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

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    華邦電子CUBE引領(lǐng)邊緣AI存力革新

    為解決上述挑戰(zhàn),華邦推出的創(chuàng)新性內(nèi)存解決方案 —— CUBE(定制化超高帶寬元件),以四大「芯」優(yōu)勢,為邊緣 AI 高效發(fā)展提供有力支持。
    的頭像 發(fā)表于 04-20 15:32 ?1107次閱讀

    如何在 STM32Cube CMake 工程中添加源文件

    STM32Cube for Visual Studio Code V3 版本(例如,如下圖所示的 Pre-release V3.4.11)打開,編輯,編譯以及調(diào)試。但是除了 STM32CubeMX 生成的文件,還有自己開發(fā)的源文件。例如,在根目錄下有個目錄名為 cust
    發(fā)表于 04-15 16:07 ?0次下載

    LAT1574_如何在 STM32Cube CMake 工程中添加源文件

    STM32Cube for Visual Studio Code V3 版本(例如,如下圖所示的 Pre-release V3.4.11)打開,編輯,編譯以及調(diào)試。但是除了 STM32CubeMX 生成的文件,還有
    發(fā)表于 03-11 10:46 ?0次下載

    意法半導體STM32 MCU AI模型再擴容

    近日,意法半導體(ST)發(fā)布了新的人工智能模型,并增強了開發(fā)項目對STM32 AI模型的支持,以加快嵌入式人工智能應用的原型開發(fā)和產(chǎn)品開發(fā)。這標志著STM32
    的頭像 發(fā)表于 11-24 10:00 ?1575次閱讀

    德賽西威推出機器人智能基座AI Cube

    近日,德賽西威正式發(fā)布機器人智能基座AI Cube,該產(chǎn)品是面向機器人領(lǐng)域的AI計算終端,集成了業(yè)界領(lǐng)先的高性能計算平臺、中間件與算法框架。憑借車規(guī)級技術(shù)冗余實現(xiàn)的性能突破,該產(chǎn)品于2025高工
    的頭像 發(fā)表于 11-05 18:05 ?2782次閱讀

    國產(chǎn)MCU開始卷開發(fā)工具了?McuStudio是對STM32Cube的拙劣模仿還是真香逆襲?

    STM32Cube配置個國產(chǎn)芯片可能還得自己搗鼓底層包,這工具直接就給你整好了。 但也別吹得太神,槽點也得講 ? 底層最后還是調(diào)HAL - 對于習慣了寄存器操作、追求極致效率的老法師來說,可能覺得這玩意兒
    發(fā)表于 10-31 10:18

    立即在GitHub上搶先體驗面向STM32U5的最新STM32Cube HAL更新

    其滿足您的需求。 如何獲取預覽版本 面向STM32U5系列的STM32Cube HAL2預覽版已在GitHub代碼STM32CubeU5-V2-Preview中開放。 更新后的HAL
    的頭像 發(fā)表于 10-20 17:12 ?1300次閱讀

    HTTP開發(fā)必備:核心與httpplus擴展應用示例全攻略

    HTTP開發(fā)的必備參考!本文匯總核心基礎(chǔ)操作與httpplus擴展高級特性,通過示例解析,讓你快速上手各類HTTP開發(fā)需求。
    的頭像 發(fā)表于 09-20 15:19 ?3337次閱讀
    HTTP開發(fā)必備:核心<b class='flag-5'>庫</b>與httpplus擴展<b class='flag-5'>庫</b>應用示例全攻略

    AI Cube如何導入數(shù)據(jù)集?

    我從在線平臺標注完并且下載了數(shù)據(jù)集,也按照ai cube的要求修改了文件夾名稱,但是導入提示 不知道是什么原因,我該怎么辦? 以下是我修改后的文件夾目錄
    發(fā)表于 08-11 08:12

    求助,關(guān)于NanoEdge AI Studio生成的交叉編譯器版本疑問求解

    20231009\", 那么問題來了,怎么在NanoEdge AI Studio設(shè)定交叉編譯器呢,比如設(shè)置為armcc、armclang、iccram,因為我需要將加到keil或者iar工程里面。 看樣子這個軟件生成的是a
    發(fā)表于 08-08 07:25

    ai_cube訓練模型最后部署失敗是什么原因?

    ai_cube訓練模型最后部署失敗是什么原因?文件保存路徑里也沒有中文 查看AICube/AI_Cube.log,看看報什么錯?
    發(fā)表于 07-30 08:15

    請問STM32N6 cubeAI部署時用的內(nèi)存是在內(nèi)部還是外部?

    STM32N6用cube AI部署模型的時候,用n6-allmems-O3之后analyse得到了RAM和FLASH的內(nèi)存占用,這里展示的內(nèi)存占用都是指的是芯片內(nèi)部的存儲器嗎
    發(fā)表于 06-09 06:19

    STM32F4標準外設(shè)資料

    stm32f4xx.h,標準外設(shè)
    發(fā)表于 06-08 09:49 ?5次下載

    請問X—CUBEAI和touchgfx沒法同時使用嗎?

    啟用了touchgfx,X—CUBE-AI的device application就無法選擇了?這倆工具沒法同時使用嗎?小白求問佬們
    發(fā)表于 06-06 07:16

    請問STM32N6 cubeAI部署時用的內(nèi)存是在內(nèi)部還是外部?

    STM32N6用cube AI部署模型的時候,用n6-allmems-O3之后analyse得到了RAM和FLASH的內(nèi)存占用,這里展示的內(nèi)存占用都是指的是芯片內(nèi)部的存儲器嗎
    發(fā)表于 06-03 12:13
    朝阳市| 延长县| 兴文县| 沙河市| 大庆市| 长乐市| 辽宁省| 彝良县| 贵定县| 安吉县| 海安县| 成都市| 东至县| 平安县| 安丘市| 葵青区| 东台市| 江北区| 龙里县| 镇原县| 榆社县| 泰顺县| 阳东县| 天等县| 东丽区| 西华县| 云阳县| 老河口市| 沁水县| 靖西县| 靖州| 仲巴县| 曲沃县| 延川县| 大兴区| 扎赉特旗| 辽阳市| 黎平县| 嘉善县| 塘沽区| 灵璧县|