意法半導體邊緣AI開發者雲工具使用介紹

ST在AI應用領域提供了很多工具,在ST Edge AI Suite套件中,其中有一款EDGE AI DEVELOPER CLOUD。打開鏈接如下:https://stm32ai.st.com/st-edge-ai-developer-cloud/

一、概要

STM32Cube.AI開發者雲(STM32CubeAI-DC)是一個免費的在線平台和服務,可為基於Arm®Cortex®‑M處理器的STM32微控制器創建、優化、基準測試和生成人工智慧(AI)。它基於STM32Cube.AI核心技術。

STM32Cube.AI開發者雲的優勢和特點包括:

  • 在線圖形用戶界面(無需安裝),可使用STMicroelectronics外部網用戶憑證訪問。
  • 網絡優化和可視化,提供在STM32目標上運行所需的RAM和閃存大小。
  • 量化工具,將浮點模型轉換為整數模型。
  • 基準測試服務,利用STMicroelectronics託管的板卡農場,包括各種STM32板,以便選擇最合適的硬體。
  • 代碼生成器,包括網絡C代碼,並可選生成完整的STM32項目。
  • STM32模型庫:
  • 易於訪問模型選擇、訓練腳本和關鍵模型指標,直接用於基準測試。
  • 從用戶模型生成應用代碼,並提供“入門”代碼示例。
  • 使用Python腳本(REST API)的機器學習(ML)工作流自動化服務。
  • 支持所有X-CUBE-AI功能,例如:
  • 原生支持多種深度學習框架,如Keras和TensorFlow Lite,以及支持可以導出到ONNX標準格式的框架,如PyTorch、MATLAB®等。
  • 支持Keras網絡和TensorFlow Lite量化網絡的8位量化。
  • 支持多種內置scikit-learn模型,如孤立森林、支持向量機(SVM)、K均值等。
  • 可以通過將權重存儲在外部閃存中以及將激活緩衝區存儲在外部RAM中來使用更大的網絡。
  • 在不同STM32微控制器系列之間易於移植。
  • 用戶友好的許可條款。

二、登入

要開始使用該工具,請訪問STM32Cube.AI開發者雲的主頁,網址為 https://stm32ai-cs.st.com/。如下所示的歡迎頁面應該會出現:

當頁面完全加載後,點擊“立即開始”("START NOW")按鈕。這將把用戶重定向到登錄頁面,如下所示:

如果用戶擁有myST賬戶,他們可以輸入憑證並點擊“登錄”("Login")按鈕。如果他們當前沒有賬戶,可以通過點擊“創建賬戶”("Create Account")按鈕並填寫所需的表單來創建一個。賬戶創建是完全免費的。

三、創建一個項目

1. 成功登錄後,用戶將被引導至主頁面。該頁面展示了三個主要區域,如下所示:

2. 上傳模型

在第一區域,可以通過點擊“上傳”按鈕並從文件瀏覽器中選擇文件,或者直接將文件拖放到該區域來上傳任何預訓練的AI模型。

3. 從STM32模型庫導入

第二個區域顯示了一系列預訓練的AI模型,這些模型可以作為各種用例的起點。目前包括五個類別:

  • 手勢識別
  • 圖像分類
  • 人體活動識別
  • 音頻事件檢測
  • 物體檢測

這些模型來自STM32模型庫。要創建新項目,請點擊所需模型旁邊的“導入”按鈕。

窗體頂端

窗體底端

4. 使用已保存的模型

第三個區域作為工作區,包含用戶之前在STM32Cube.AI開發者雲中分析和基準測試的所有AI模型。

5. 啟動項目

這篇文章使用了來自模型庫的一個.h5 模型,該模型是使用 TensorFlow Keras API 創建的。要使用這個模型,請按照以下步驟操作:

a)在模型庫的模型列表中向下滾動,找到“MOBILENET_V2_0.35_128_IMAGE_CLASSIFICATION_PERSON.H5” 模型。找到後,選擇其旁邊的 “導入” 按鈕。

現在,該模型出現在工作區中。

 

b)按下 “Play” 按鈕以計算 Netron 圖。當分析完成後,點擊 “Netron” 圖標以打開一個彈出窗口,在 Netron 中顯示模型架構。此視圖允許觀察模型的所有層和組件。要退出此視圖,請點擊位於右上角的 “Cross” 按鈕。

 

c)點擊 “Start” 按鈕以創建一個新的項目。

項目創建完成後,頂部欄中有五個操作項變為可用狀態。

 

“Optimize”:使用不同的選項優化模型。
“Quantize”:使用訓練後量化對浮點模型進行量化。
“Benchmark”:在我們的開發板農場中的不同 STM32 開發板上對人工智慧模型進行基準測試。
“Results”:查看、分析和比較不同基準測試運行生成的結果。
“Generate”:為經過優化和基準測試的模型生成目標 MCU 系列和開發板的代碼和項目。
本頁面的以下章節提供了有關這些操作項的更多詳細信息。

此部分還顯示了當前所選模型的詳細信息。這包括相關信息,例如輸入和輸出形狀、類型以及乘加累積運算(MACC)次數等數據。

 

四、優化

在 “優化” 部分,使用平衡優化選項進行默認優化。這會啟用 “use activation buffer for input buffer” 和 “use activation for output buffer”。你可以修改默認設置,然後點擊 “Optimize” 以觀察其影響。

A)優化選項

有三種不同的選項可用於優化人工智慧模型:

在 RAM 大小和推理時間之間取得平衡:這種方法試圖在最小 RAM 和最短推理時間之間找到折衷方案。
針對 RAM 大小進行優化:這種方法旨在優化 RAM 大小。
針對推理時間進行優化:這種方法旨在優化推理時間

 

B)將激活緩衝區用於輸入 / 輸出緩衝區。

當這些選項被啟用時,這表明 “激活” 緩衝區也被用於處理輸入 / 輸出緩衝區。這會影響內存,但不會影響推理時間。根據輸入 / 輸出數據的大小,“激活” 緩衝區可能會更大,但總體上小於激活緩衝區與輸入 / 輸出緩衝區之和。

C)啟動優化

要啟動優化過程,請選擇所需的選項並點擊 “Optimize” 按鈕。在優化運行時,用戶可以監視終端,終端會提供有關優化運行的詳細信息。任何錯誤都會在此處顯示。

可以通過選擇不同的選項啟動多次優化,從而允許用戶選擇最適合其需求的選項。在每次優化操作後,終端會以乘加累積運算MACC次數、閃存大小和 RAM 大小的形式顯示報告的數字。

當所有優化都已完成時,用戶可以選擇最適合他們需求的選項。這個例子使用了平衡方法。從這裡,用戶可以繼續進行下一個操作項。如果他們正在使用浮點模型,下一步是量化。然而,如果他們正在使用量化模型,他們可以跳過量化並直接進行基準測試。

要開始量化步驟,請點擊 “Go to quantize” 按鈕。


要跳過量化步驟並直接進行基準測試,請點擊 “Go to benchmark” 按鈕。

五、量化

此面板可用於從 Keras 浮點模型創建量化模型(8 位整數格式)。量化是一種優化技術,用於通過減小模型權重的大小(存儲尺寸更小且在運行時內存峰值使用更少)來壓縮 32 位浮點模型,提高 CPU/MCU 的使用率和延遲(包括功耗),但可能會降低精度。量化模型在具有整數而不是浮點值的張量上執行部分或全部操作。

量化服務使用由 TFLiteConverter 提供的 TensorFlow 訓練後量化接口。從三個受支持的選項中選擇任何輸入或輸出類型,包括 int8、無符號 int8 或 float32。為防止在量化過程中精度損失,建議用戶提供他們的訓練數據集或其中的一部分。這可以以.npz 文件的形式提供。如果未提供量化文件,則將使用隨機數據進行量化,並且所得的量化模型僅可用於基準測試以獲得所需的閃存和 RAM 大小以及推理時間,但不會計算精度。

一旦提供了數據集的.npz 文件,點擊 “啟動量化” 按鈕以開始量化過程。此演示在沒有數據集的情況下進行量化,而是使用隨機數。

 

當量化過程完成後,量化模型將在下面列出。點擊 “Optimize selected quantized model” 按鈕以優化所選量化模型,並將結果與浮點模型進行比較。

在優化過程中,終端會像上面描述的前一步一樣顯示輸出。

在量化模型優化後,“History of optimization results” 表會顯示結果。在這個例子中,應該觀察到從優化中閃存和 RAM 大小都減少了大約 70%:

 

一旦對量化結果滿意,點擊 “Go to benchmark” 按鈕,這將把用戶帶到模型基準測試步驟。

六、基準測試

“基準測試” 面板顯示當前所選模型以及當前用於優化的參數,如下圖所示。

基準測試服務允許用戶在多個 STM32 開發板上遠程運行選定的人工智慧模型,並獲得內部或外部閃存和 RAM 的使用情況以及推理時間。這些 STM32 開發板託管在 ST 公司的場所,被稱為 “board farm”,並且可以通過等待隊列進行訪問。該面板列出了一些基本的開發板信息,包括 CPU 類型和頻率,以及內部和外部存儲器的大小。

要在給定的開發板上啟動基準測試,請點擊該開發板旁邊的 “Start Benchmark” 按鈕。這將啟動基準測試過程。本文中的示例使用 STM32H735G-DK 開發板。

在基準測試過程中,用戶可以實時觀察進度條和當前狀態。會創建一個用於系統性能應用的項目。該工具使用人工智慧模型的 C 代碼構建項目,並對開發板農場中的一個實際物理開發板進行編程。它在開發板上運行應用程序,並為用戶提供內存占用和推理時間。

當基準測試完成時,測量得到的推理時間會顯示在開發板旁邊,如下圖所示。

要獲取關於每層使用的資源的更多詳細信息,點擊 “三個點” 圖標並選擇 “顯示每層詳細信息” 選項。會出現一個帶有相應條形圖的對話框。

條形圖以字節為單位顯示每一層的大小。用戶可以通過點擊 “切換餅圖 / 條形圖” 按鈕在條形圖和餅圖之間切換。條形圖顯示實際大小,而餅圖顯示分布情況。

用戶可以對執行時間執行相同的操作。條形圖以毫秒為單位顯示在每一層上花費的時間,而餅圖顯示每一層的執行時間分布。要關閉此視圖,點擊對話框外部的任意位置。

該工具允許用戶同時在多個開發板上啟動基準測試。他們可以通過按下所有的 “開始基準測試” 按鈕在所有開發板上啟動基準測試。這會對所有開發板重複該過程,並在每個開發板旁邊報告推理時間。

當所有基準測試運行完成後,用戶可以進入 “結果” 步驟。

七、結果

“結果” 頁面顯示了在 STM32Cube.AI 開發者雲中進行的所有基準測試的表格,這對於比較所有基準測試非常有用。用戶可以通過點擊 “使用此配置生成” 按鈕直接選擇一個基準測試進行代碼生成。

此演示使用 STM32H735G-DK 開發板,它提供了最小的推理時間。

 

八、生成

“生成” 頁面提供了各種滿足不同需求的輸出。這些包括更新現有項目、創建新的 STM32CubeMX 項目、生成包含所有源文件的 STM32CubeIDE 項目,或者下載編譯後的固件以在用戶自己的開發板上估計推理時間。

當用戶到達 “生成” 步驟時,他們會看到當前所選模型的相同標題和當前參數。如果來自基準測試或結果步驟,目標開發板已經被選中。否則,用戶需要篩選 CPU 類型或 STM32 系列以選擇他們的目標 STM32 開發板。

在此之後,用戶有四個生成選項可供選擇:
下載 C 代碼;
下載 STM32CubeMX 的 ioc 文件;
下載 STM32CubeIDE 項目;
下載固件。

 

★博文內容參考自 網站,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

參考來源

ST: https://www.st.com/

評論