更簡(jiǎn)單、更聰明的X-CUBE-AI v7.1.0 輕松布署AI模型
X-CUBE-AI是意法半導(dǎo)體(簡(jiǎn)稱ST)STM32生態(tài)系統(tǒng)中的AI擴(kuò)充套件,可自動(dòng)轉(zhuǎn)換預(yù)先訓(xùn)練好的AI模型,并在用戶的項(xiàng)目中產(chǎn)生STM32優(yōu)化函式庫(kù)。
最新版本的X-CUBE-AI v7.1.0主要有三項(xiàng)更新:
? 支持入門級(jí)STM32 MCU;
? 支持最新AI架構(gòu);
? 改善使用者體驗(yàn)和效能調(diào)校。
ST持續(xù)提升STM32 AI生態(tài)系統(tǒng)的效能,且提供更多簡(jiǎn)單、易用的接口,并強(qiáng)化更多類神經(jīng)網(wǎng)絡(luò)中的運(yùn)算,而且最重要的一點(diǎn)是:免費(fèi)。在介紹X-CUBE-AI v7.1.0的三大更新之前,先了解一下X-CUBE-AI的主要用途。
X-CUBE-AI擴(kuò)充套件是什么?
X-CUBE-AI擴(kuò)充套件又稱為「STM32Cube.AI」,其具備優(yōu)化區(qū)塊,并可為STM32 裝置產(chǎn)生在準(zhǔn)確度、內(nèi)存占用空間和電源效率都最合適的模型。
圖一
模型拓?fù)鋬?yōu)化器-Graph optimizer
自動(dòng)透過簡(jiǎn)化 AI graph 以及量化運(yùn)算等方式,使AI模型能在目標(biāo)STM32硬件上獲得最佳的運(yùn)行效能。其中包含多種如graph rewrite、operator fusion、constant folding等的量化運(yùn)算技術(shù)。
量化器
X-CUBE-AI擴(kuò)充套件也支持FP32和Int8預(yù)先訓(xùn)練好的模型。開發(fā)人員可匯入經(jīng)量化的類神經(jīng)網(wǎng)絡(luò),使其兼容于STM32嵌入式架構(gòu),同時(shí)采用如文件詳述的post-training quantization流程來維持準(zhǔn)確度。在下一版本中,Int1、Int2和Int3也將納入支援。一旦成功匯入模型,即可在PC和目標(biāo)STM32硬件上驗(yàn)證AI模型。
內(nèi)存優(yōu)化器
內(nèi)存優(yōu)化器是一項(xiàng)先進(jìn)的內(nèi)存管理工具,遵循嵌入式設(shè)計(jì)限制優(yōu)化的內(nèi)存配置,能達(dá)到最佳效能,而其智慧方式能在內(nèi)部及外部資源間均衡配置內(nèi)存,使其保有建立模型專屬內(nèi)存的可能性,讓開發(fā)者能輕松更新模型。
最新版X-CUBE-AI v7.1.0將提供三項(xiàng)主要更新功能。
1.支持入門級(jí)STM32 MCU
為使邊緣裝置發(fā)揮全方位AI效能,X-CUBE-AI v7.1.0全面支持STM32 Arm Cortex-M0和 Arm Cortex-M0+的功能。今后,使用者將可在最小型的STM32微控制器中實(shí)作類神經(jīng)網(wǎng)絡(luò)。
開發(fā)人員不僅能在下列產(chǎn)品組合中找到各式用途的芯片, 甚至還能擁有具備AI功能的芯片。STM32適用范圍甚廣,從極低功耗、高效能系列MCU,一路涵蓋至MPU。此外,如無線MCU等不同用途的芯片亦適用于AI應(yīng)用。
圖二
2.支持最新AI架構(gòu)
最新版本的X-CUBE-AI v7.1.0為廣泛運(yùn)用的深度學(xué)習(xí)架構(gòu)帶來諸多功能,如Keras與 TensorFlow? Lite,并將TFLite運(yùn)行時(shí)間升級(jí)至2.7.0,而ONNX 升級(jí)至1.9。
圖三
Keras是透過Tensorflow backend獲得支持,而受支持的運(yùn)算符可處理多種經(jīng)典拓?fù)?,能適用于行動(dòng)裝置或IoT資源受限的環(huán)境。例如:SqueezeNet、MobileNet V1、Inception和 SSD-MobileNet v1等。而X-CUBE-AI v7.1.0最高能支持到TF Keras 2.7.0。
Tensorflow Lite格式適用在行動(dòng)平臺(tái)上部署類神經(jīng)網(wǎng)絡(luò)模型。X-CUBE-AI可匯入并轉(zhuǎn)換成采用flatbuffer技術(shù)的tflite檔案。其也可處理多項(xiàng)運(yùn)算符,包含量化模型和經(jīng)由quantization aware training或post-training quantization產(chǎn)生的運(yùn)算符。
X-CUBE-AI也支持其他可匯出為ONNX標(biāo)準(zhǔn)格式的架構(gòu),如PyTorch、Microsoft Cognitive Toolkit、MATLAB等。
對(duì)于各種不同的AI框架,ST僅支持部分神經(jīng)層及神經(jīng)層參數(shù),其取決于網(wǎng)絡(luò)C API的expressive power及專用toolbox的parser。
ST所提供之STM32Cube.AI runtime可達(dá)到最佳AI 應(yīng)用程序執(zhí)行效能,開發(fā)人員仍可選取 TensorFlow? Lite runtime作為替代方案,以在多個(gè)項(xiàng)目間發(fā)揮優(yōu)勢(shì),但TensorFlow Lite runtime對(duì)STM32優(yōu)化程度較低,可能會(huì)降低效能。
除深度學(xué)習(xí)架構(gòu)以外,X-CUBE-AI亦可轉(zhuǎn)換到知名開放原始碼函式庫(kù),以及完備之Python機(jī)器學(xué)習(xí)架構(gòu)「Scikit-learn」 中的機(jī)器學(xué)習(xí)算法,如隨機(jī)森林、支持向量機(jī)(Support Vector Machine,SVM)、k-means分群以及k-nearest neighbors(k-NN)算法。開發(fā)人員可以建立多種監(jiān)督式或非監(jiān)督式機(jī)器學(xué)習(xí)算法,并利用簡(jiǎn)單有效的工具進(jìn)行數(shù)據(jù)分析。
X-CUBE-AI v7.1.0不直接支持Scikit-learn的機(jī)器學(xué)習(xí)算法或XGBoost套件。在訓(xùn)練步驟完成后,這些算法應(yīng)轉(zhuǎn)換成ONNX格式以供部署及匯入,通常會(huì)使用skl2onnx公用程序,但亦可使用其他具有ONNX匯出工具的機(jī)器學(xué)習(xí)架構(gòu)。不過,ONNX-ML模型匯入X-CUBE-AI的作業(yè)大致已采scikit-learn v0.23.1、skl2onnx v1.10.3和XGBoost v1.5.1進(jìn)行測(cè)試。
3.改善使用者體驗(yàn)和效能調(diào)校
X-CUBE-AI v7.1.0推出多重堆積支持功能,開發(fā)人員只需點(diǎn)擊幾下按鍵,即可將不同的額外負(fù)載調(diào)配到分布式內(nèi)存的區(qū)段上。
圖四
在使用外部?jī)?nèi)存的支持下,開發(fā)人員可以輕易將weights劃分至不同的內(nèi)存區(qū)域。一旦模型儲(chǔ)存于多重?cái)?shù)組,即可映像內(nèi)部閃存中的部分weights,并將剩余之內(nèi)存分配于外部。此工具可讓開發(fā)人員依模型要求和應(yīng)用程序占用空間來使用non-contiguous的閃存區(qū)塊。
圖五
圖形用戶接口亦可提供全方位的視圖,完整顯示所產(chǎn)生編碼中使用的緩沖區(qū)。選取模型后,開發(fā)人員即可查看可視化的統(tǒng)計(jì)數(shù)據(jù),以了解整個(gè)系統(tǒng)的復(fù)雜度和占用空間。其可展示模型中的每個(gè)神經(jīng)層,使開發(fā)人員輕易辨別出關(guān)鍵層。
圖六
此工具有助于開發(fā)人員加快速度,并能更快在PC上驗(yàn)證模型以完成基準(zhǔn)評(píng)測(cè),以及在目標(biāo) STM32裝置上量測(cè)最終效能。驗(yàn)證流程的最后將會(huì)產(chǎn)生比較表格,匯總原型及STM32模型之間的準(zhǔn)確度和誤差。X-CUBE-AI也會(huì)提供一份報(bào)告顯示各層復(fù)雜度,以及在執(zhí)行期間所測(cè)得的推算時(shí)間。
X-CUBE-AI僅是ST廣泛生態(tài)系的其中一環(huán),其旨在讓STM32用戶充分發(fā)揮人工智能的效益。X-CUBE-AI則是確保長(zhǎng)期支持及高質(zhì)量開發(fā)的可靠度。每次推出重大新版本,最新 AI 架構(gòu)兼容性均會(huì)定期更新。
評(píng)論