
X-CUBE-AI是STM32生态系统中的AI扩展包。可自动转换预训练的人工智能模型,并在用户项目中生成STM32优化库。; E0 p7 f6 }% k # y9 s( N+ @# z- i 最新版的X-CUBE-AI v7.1.0在以下方面进行了三大更新:
我们通过提供更多用户友好的界面,不断增强STM32 AI生态系统的功能,并加强了神经网络计算中的更多操作。最重要的是,该扩展包由我们免费提供。4 K& p( k& \* o0 C) D 在介绍X-CUBE-AI v7.1.0的三大更新内容之前,我们先回顾一下X-CUBE-AI的主要用途。 什么是X-CUBE-AI扩展包 X-CUBE-AI扩展包,也称STM32Cube.AI,装配优化模块,确保从精度、内存占用和电源效率方面为目标STM32生成最佳拟合模型。. i. p/ j% M! e. R2 b4 P/ ^, } ![]() 图形优化器% z! v% z6 G. `/ |/ V& ~ 通过有利于STM32目标硬件架构的图形简化和优化自动提高性能。使用了几种优化技术,如计算图重组、算子融合、常数折叠等。7 Z! u, a; @% H - p4 l& b) i5 b. B8 @" ~ 量化器3 z* P2 {6 ^% t p+ z# l X-CUBE-AI扩展包支持FP32和Int8预训练模型。开发人员可以导入量化神经网络以兼容STM32嵌入式架构,同时通过采用文档中详述的训练后量化过程来保持性能。在下一个版本中,还将考虑Int1、Int2和Int3。成功导入模型后,可在桌面和目标STM32硬件上验证代码。) F+ N. ?9 U7 z/ J 内存优化器 内存优化器是一种高级内存管理工具。优化内存分配以获得最佳性能,同时符合嵌入式设计的要求。可在内部和外部资源之间实现内存分配的智能平衡,还可以为模型创建专用内存。开发人员可以轻松地更新模型。 + g+ ?2 H# Y1 ?( N* a) L7 b X-CUBE-AI v7.1.0的三大更新' f, w- M3 u5 D3 a9 c: O9 w 在最新版本的X-CUBE-AI v7.1.0中,我们进行了三大更新。* `+ |( e% L- l) H. \6 [( r 7 q4 J* C$ [: U! a. Y: E 支持入门级STM32 MCU 为了让您的边缘设备在各个层面都支持AI,我们使X-CUBE-AI v7.1.0实现了对STM32 Arm® Cortex®-M0和Arm® Cortex®-M0+的全面支持。从现在起,用户可以将神经网络带至最小的STM32微控制器上。( u& f& s6 g+ g$ H- @" t/ m 开发人员不仅可以在以下产品组合中找到用于各种用途的匹配芯片,还可以拥有一款具有AI启发性的芯片。STM32的频谱范围从超低功耗到高性能系列和微处理器,均包含在内。无线MCU等不同用途也适合AI应用。5 V+ G, ]8 g3 F1 C" G: Z( x% E; A ( G$ B4 h W2 d/ o4 }. J) S r ![]() 支持最新的AI框架0 w' v, |8 K$ n9 G6 ]2 | 最新版本的X-CUBE-AI v7.1.0在Keras和TensorFlow™等广泛使用的深度学习框架中添加了多种功能,并将TFLite runtime升级至2.7.0,将ONNX升级至1.9。8 D( s& R# Y. G2 z ![]() Keras通过Tensorflow™得到支持,支持的算子允许处理针对移动或物联网资源受限的运行时环境的大量经典拓扑。例如,SqueezeNet、MobileNet V1或V2、Inception、SSD MobileNet V1等。在X-CUBE-AI v7.1.0中最高可支持TF Keras 2.7.0。4 Z; @" o' a; Q5 v 1 G0 C/ }8 `: c" i/ ^ Tensorflow™ Lite是在移动平台上部署神经网络模型的格式。X-CUBE-AI导入并转换基于flatbuffer技术的tflite文件。处理多个算子,包括量化模型和量化感知训练或训练后量化过程生成的算子。7 W o- `0 o5 B7 X4 S " i' C# Z/ w! b |" A 对于其他可以导出为ONNX标准格式的框架,如PyTorch™、Microsoft® Cognitive Toolkit、MATLAB®等,X-CUBE-AI同样支持。 每个AI框架我们只支持所有可能层和层参数子集,这取决于网络C API的表达能力和特定工具箱的解析器。 我们提供STM32Cube.AI运行时,以便在执行AI应用程序时获得最佳性能。但是,开发人员可以选择TensorFlow™ Lite运行时作为一种替代方案,在多个项目中发挥作用。即使可能会降低性能,因为运行时针对STM32的优化程度较低。 除了深度学习框架外,X-CUBE-AI还涵盖了来自著名开源库scikit-learn的机器学习算法,这是一个完整的Python机器学习框架,如:随机森林、支持向量机(SVM)、k-means聚类和k最近邻(k-NN)。开发人员可以构建大量有监督或无监督的机器学习算法,并利用简单高效的工具进行数据分析。/ h4 G0 I2 x5 L Z, R4 [ # a( S8 E3 t3 M$ L( i4 K: N X-CUBE-AI v7.1.0不直接支持来自scikit-learn框架或XGBoost包的机器学习算法。在完成训练步骤后,这些算法应转换为ONNX格式,以便部署和导入。skl2onnx实用程序通常用于将模型转换为ONNX格式。可以使用带有ONNX导出器的其他ML框架,但请注意,X-CUBE-AI中ONNX-ML模型的导入主要使用 scikit-learn v0.23.1、skl2onnx v1.10.3和XGBoost v1.5.1进行测试。 改善用户体验和性能调节 X-CUBE-AI v7.1.0引入了多堆支持,开发人员只需单击即可轻松地将不同内容分配到碎片化的内存段上。6 I: a! n4 q, @, m ![]() 通过使用外部内存支持,开发人员可以轻松地在不同的内存区域分配权重。一旦模型存储在多个数组中,便可将部分权重映射到内部闪存,而其余的则映射到外部闪存。该工具使开发人员可以根据模型要求和应用程序内存占用使用非连续闪存区。 & \: ]) n. x: @# t ![]() 图形用户界面还提供了生成代码中使用的缓冲区的全面视图。一旦选择了模型,开发人员就可以通过直观地检查统计数据来评估整体复杂性和内存占用。模型中的每一层都清晰可见,开发人员可以轻松识别关键层。 ( d' @/ s+ x* @ O3 ?3 R ![]() 该工具可帮助开发人员加快速度,使我们能够在桌面上验证模型,进行快速基准测试并检测目标STM32设备的最终性能。 验证过程结束时,对比表总结了原始模型和STM32模型之间的准确性和误差。X-CUBE-AI还提供了每层的计算复杂度报告,以及运行时测量的推断时间。 - E, c# V9 j- h: U X-CUBE-AI只是意法半导体为STM32用户利用人工智能提供的广泛生态系统的一部分。使用X-CUBE-AI可确保高质量开发的长期支持和可靠性。每次推出新的主要版本时,都会有针对性地定期更新,确保兼容最新AI框架。敬请关注我们为您带来的更多有趣技术。: F1 y& f+ n+ ]0 z$ P' l 1 j6 i3 q5 d8 I% t) S, f$ L4 H* D# ]# f 1 y% o" D/ Z) H9 k; i 3 x7 L* K2 r/ K$ F% a 转载自:意法半导体中国3 S' i/ U7 X% n6 A; }/ N 如有侵权请联系删除, u- ~/ ~$ Z5 O2 o% \ |
新版STM32Cube for Visual Studio Code开发体验
【STM32N6570-DK评测】3.CubeMX关于DCMIPP和CSI的BUG整理及摄像头使用
经验分享常被误解的开、关总中断
【STM32C0测评】Nucleo-C092开发板功耗测试
【STM32C0测评】Nucleo-C092开发板IIC通信测试(硬件IIC)
【STM32C0测评】Nucleo-C092开发板IIC通信测试(软件IIC)
【STM32C0测评】Nucleo-C092开发板IIC通信测试(硬件软件IIC一网打尽)
【STM32C0测评】Nucleo-C092开发板USART串口测试
【STM32C0测评】Nucleo-C092开发板使用PWM控制板载LED呼吸灯
【STM32C0测评】Nucleo-C092板卡外部中断控制板载LED灯