侵权投诉

完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>

3天内不再提示

STM32Cube.AI库的高级特性

STM32_STM8_MCU 来源:意法半导体中国 作者:意法半导体中国 2021-11-16 16:59 次阅读

STM32Cube.AI意法半导体AI生态系统的一部分,是STM32Cube的一个扩展包,它可以自动转换和优化预先训练的神经网络模型并将生成的优化库集成到用户项目中,从而扩展了STM32CubeMX的功能。它还提供几种在桌面PC和STM32上验证神经网络模型以及测量模型性能的方法,而无需用户手工编写专门的C语言代码。

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

本文将更深入地介绍它的一些高级特性。将涉及以下主题:

运行时环境支持:Cube.AI vs TensorFlow Lite

量化支持

图形流与存储布局优化

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

运行时环境支持:Cube.AI vs TensorFlow Lite

STM32Cube.AI支持两种针对不同应用需求的运行时环境:Cube.AI和TensorFlow Lite。作为默认的运行时环境,Cube.AI是专为STM32高度优化的机器学习库。而TensorFlow Lite for Microcontroller是由谷歌设计,用于在各种微控制器或其他只有几KB存储空间的设备上运行机器学习模型的。其被广泛应用于基于MCU的应用场景。STM32Cube.AI集成了一个特定的流程,可以生成一个即时可用的STM32 IDE项目,该项目内嵌TensorFlow Lite for Microcontrollers运行时环境(TFLm)以及相关的TFLite模型。这可以被看作是Cube.AI运行时环境的一个替代方案,让那些希望拥有一个跨多个项目的通用框架的开发人员也有了选择。

虽然这两种运行时环境都是为资源有限的MCU而设计,但Cube.AI在此基础上针对STM32的独特架构进行了进一步优化。因此,TensorFlow Lite更适合有跨平台可移植性需求的应用,而Cube.AI则更适合对计算速度和内存消耗有更高要求的应用。

下表展示了两个运行时环境之间的性能比较(基于一个预训练的神经网络参考模型)。评价指标是在STM32上的推断时间和内存消耗。

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

如表中所示,对于同一模型,Cube.AI运行时环境比TFLite运行时环境节约了大概20%的flash存储和约8%的RAM存储。此外,它的运行速度几乎比TFLite运行时环境快了2倍。

对于TFLite模型,用户可以在STM32Cube.AI的网络配置菜单中对2个运行时环境进行选择。

量化支持

量化是一种被广泛使用的优化技术,它将32位浮点模型压缩为位数更少的整数模型,在精度只略微下降的情况下,减少了存储大小和运行时的内存峰值占用,也减少了CPU/MCU的推断时间和功耗。量化模型对整数张量而不是浮点张量执行部分或全部操作。它是面向拓扑、特征映射缩减、剪枝、权重压缩等各种优化技术的重要组成部分,可应用在像MCU一样资源受限的运行时环境。

通常有两种典型的量化方法:训练后量化(PTQ)和量化训练(QAT)。PTQ相对容易实现,它可以用有限的具有代表性的数据集来量化预先训练好的模型。而QAT是在训练过程中完成的,通常具有更高的准确度。

STM32Cube.AI通过两种不同的方式直接或间接地支持这两种量化方法:

首先,它可以用来部署一个由PTQ或QAT过程生成的TensorFlow Lite量化模型。在这种情况下,量化是由TensorFlow Lite框架完成的,主要是通过“TFLite converter” utility导出TensorFlow Lite文件。

其次,其命令行接口(CLI)还集成了一个内部的训练后量化(PTQ)的过程,支持使用不同的量化方案对预训练好的Keras模型进行量化。与使用TFLite Converter工具相比,该内部量化过程提供了更多的量化方案,并在执行时间和精确度方面有更好的表现。

下表显示了在STM32上部署量化模型(与原有浮点模型相比)的好处。此表使用FD-MobileNet作为基准模型,共有12层,参数大小145k,MACC操作数24M,输入尺寸为224x224x3。

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

从表中很容易看出,量化模型节省了约4倍的flash存储和RAM存储,且运行速度提高了约3倍,而精确度仅仅下降了0.7%。

如果已经安装了X-Cube-AI包,用户可以通过以下路径找到关于如何使用命令行界面(CLI)进行量化的教程:

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

在文档的末尾还附上了一个快速实践示例:“量化一个MNIST模型”。

图形流与存储布局优化

除了量化技术,STM32Cube.AI还通过使用其C代码生成器的优化引擎,针对推理时间优化内存使用(RAM & ROM)。该引擎基于无数据集的方法,无需验证或测试数据集来应用压缩和优化算法。

第一种方法:权重/偏置项压缩,采用k -均值聚类算法。该压缩算法仅适用于全连接层。其优势是压缩速度快,但是结果并不是无损的,最终的精度可能会受到影响。STM32Cube.AI提供“验证”功能,用于对所生成的C模型中产生的误差进行评估。

“压缩”选项可以在STM32Cube.AI的网络配置中激活,如下图所示:

第二种方法:操作融合,通过合并层来优化数据布局和相关的计算核。转换或优化过程中会删除一些层(如“Dropout”、“Reshape”),而有些层(如非线性层以及卷积层之后的池化层)会被融合到前一层中。其好处是转换后的网络通常比原始网络层数少,降低了存储器中的数据吞吐需求。

最后一种方法是优化的激活项存储。其在内存中定义一个读写块来存储临时的隐藏层值(激活函数的输出)。此读写块可以被视为推理函数使用的暂存缓冲区,在不同层之间被重复使用。因此,激活缓冲区的大小由几个连续层的最大存储需求决定。比如,假设有一个3层的神经网络,每一层的激活值分别有5KB, 12KB和3KB,那么优化后的激活缓冲区大小将是12KB,而不是20KB。

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

非可重定位方法(或“静态”方法)指的是:生成的神经网络C文件被编译并与最终用户应用程序堆栈静态链接在一起。

如下图所示,所有对象(包括神经网络部分和用户应用程序)根据不同的数据类型被一起链接到不同的部分。在这种情况下,当用户想要对功能进行部分更新时(比如只更新神经网络部分),将需要对整个固件进行更新。

相反,可重定位二进制模型指定一个二进制对象,该对象可以安装和执行在STM32内存子系统的任何位置。它是所生成的神经网络C文件的编译后的版本,包括前向核函数以及权重。其主要目的是提供一种灵活的方法来更新AI相关的应用程序,而无需重新生成和刷写整个终端用户固件。

生成的二进制对象是一个轻量级插件。它可以从任何地址(位置无关的代码)运行,其数据也可放置于内存中的任何地方(位置无关的数据)。

STM32Cube.AI简单而高效的AI可重定位运行时环境可以将其实例化并使用它。STM32固件中没有内嵌复杂的资源消耗型动态链接器,其生成的对象是一个独立的实体,运行时不需要任何外部变量或函数。

下图的左侧部分是神经网络的可重定位二进制对象,它是一个自给自足的独立实体,链接时将被放置于终端用户应用程序的一个单独区域中(右侧部分)。它可以通过STM32Cube.AI的可重定位运行时环境被实例化以及动态链接。因此,用户在更新AI模型时只需要更新这部分二进制文件。另外,如果有进一步的灵活性需求,神经网络的权重也可以选择性地被生成为独立的目标文件。

可重定位网络可以在STM32Cube.AI的高级设置中激活

最后,作为意法半导体人工智能生态系统的核心工具,STM32Cube.AI提供许多基本和高级功能,以帮助用户轻松创建高度优化和灵活的人工智能应用。如需详细了解特定解决方案或技术细节,请随时关注我们的后续文章。

责任编辑:haq

原文标题:AI技术专题之五 |专为STM32 MCU优化的STM32Cube.AI库

文章出处:【微信号:STM32_STM8_MCU,微信公众号:STM32单片机】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    ARC智能网联汽车技术论坛即将举行

    ARC解决方案应用领域广泛,涉猎了从汽车、5G、物联网,到存储、AI、云等多个应用场景。
    的头像 新思科技 发表于 01-25 16:32 53次 阅读

    人工智能治理未来发展趋势分析

    日前,人民智库与旷视AI治理研究院成立联合课题组,邀请中国人工智能产业发展联盟(AIIA)为课题支持....
    的头像 旷视MEGVII 发表于 01-25 16:05 63次 阅读

    科技抗疫丨SENSORO疫情防控“漫入调查系统”提升流调效率

    连日来,国内多地报告新增病例,加上因春节临近导致的人员流动和聚集增加,基层防疫面临着比平时更大的挑战....
    的头像 升哲科技 发表于 01-25 16:03 10次 阅读
    科技抗疫丨SENSORO疫情防控“漫入调查系统”提升流调效率

    Google Cloud 2022中国出海数字峰会

    企业出海,技术为舵,开发者作为出海企业技术舵手,需保持高度敏锐,持续修炼技能,确保企业出海动力稳定。....
    的头像 谷歌开发者 发表于 01-25 13:11 127次 阅读

    微软推出“编程一小时”活动,为青少年打开计算机学科新世界

    小编说:“编程”对数字时代的我们来说并不陌生,如果将它与“青少年”这一蕴含着无限可能的群体联系到一起....
    的头像 微软科技 发表于 01-25 10:49 122次 阅读

    STM32逆变电路板资料下载

    STM32逆变电路板资料下载
    发表于 01-25 10:37 15次 阅读

    STM32f10x官方固件库资料

    STM32f10x官方固件库资料
    发表于 01-25 10:11 8次 阅读

    STM32中文参考手册下载

    STM32中文参考手册_V10,详细介绍了32的各种功能外设以及部分内核
    发表于 01-25 10:02 3次 阅读

    STM32固件库使用手册的中文版

    STM32固件库使用手册的中文版
    发表于 01-25 10:01 6次 阅读

    STM32f10x官方固件库资料

    STM32f10x官方固件库资料
    发表于 01-25 09:58 6次 阅读

    第八章 外部中断

    第一节原理解读打算写一下中断,又忍不住想说一下中断的概念,去书上翻一翻,或者自己在搜索引擎上搜一下,....
    的头像 墨竹公子 发表于 01-25 09:31 4次 阅读
    第八章 外部中断

    STM32的DMA有哪几种模式呢

    DMA用在什么地方合适?STM32的DMA有哪几种模式呢?...
    发表于 01-25 08:01 0次 阅读

    怎样去使用STM32的内部定时器呢

    怎样去使用STM32的内部定时器呢? STM32CUBEIDE下的定时器该怎样去配置呢? ...
    发表于 01-25 08:01 0次 阅读

    YX150C的相关资料分享

    YX150C是一种低成本、高速、高抗干扰、基于OTP的8位CMOS微控制器。它采用了只有42条指令的RISC架构。除程序分支需...
    发表于 01-25 08:00 0次 阅读

    STM32控制的相关资料推荐

    亮灯初始化对应IO#define LEDPORT        GPIOB       ...
    发表于 01-25 07:46 0次 阅读

    怎样去编写STM32启动汇编文件的程序代码呢

    怎样去编写STM32启动汇编文件的程序代码呢? C语言内嵌汇编程序该如何去实现呢? ...
    发表于 01-25 07:26 0次 阅读

    TM4C123GH6PM的相关资料下载

    从STM32到TM4C123主要内容:一、系统时钟        二、GPIO相关     &n...
    发表于 01-25 07:13 0次 阅读

    单片机下的堆和栈是什么样的分布呢?

    STM32堆和栈及变量的存储理解转至:关于堆和栈已经是程序员的一个月经话题,大部分有是基于os层来聊的。那么,在赤裸裸的单片...
    发表于 01-25 07:07 0次 阅读

    STM32CubeMX和HAL库的相关资料推荐

    -----时隔一日,本次在上一次的代码中加入了一点小技巧。这个项目中有两个电机驱动器设置为6400脉冲一圈,而且电机带了64减速箱,...
    发表于 01-25 06:48 0次 阅读

    UART通信协议的相关资料推荐

    一、前言1、简介  写的这篇博客,是为了简单讲解一下UART通信协议,以及UART能够实现的一些功能,还有有关使用STM3...
    发表于 01-25 06:40 0次 阅读

    STM32中的C语言知识点汇总

    说在前面的话 一位初学单片机的小伙伴让我推荐C语言书籍,因为C语言基础比较差,想把C语言重新学一遍,再去学单片机,我以......
    发表于 01-25 06:26 0次 阅读

    意法半导体致力于电源管理技术创新

    意法半导体30年来一直致力于电源管理技术创新,通过产品和系统解决方案直接为客户创造价值。
    的头像 意法半导体PDSA 发表于 01-24 16:35 198次 阅读

    ST智能工业产品与解决方案资料手册

    为帮助开发人员应对他们在智能工业行业领域所面临的挑战,本《资料手册》汇总了意法半导体产品组合,并为当....
    的头像 意法半导体PDSA 发表于 01-24 16:30 186次 阅读

    华为云“城市一朵云”解决方案推进智慧城市建设

    华为在全国已经建设了超过600个项目,全国总计有150个直辖市、省会城市以及地级市和区县选择华为组建....
    的头像 华为 发表于 01-24 14:16 390次 阅读

    易华录持续推动大数据技术创新应用

    为充分挖掘数据价值,深化数字技术与经济社会融合发展,安徽省亳州市数据资源管理局面向全国公开征集大数据....
    的头像 易华录 发表于 01-24 12:13 176次 阅读

    无人驾驶企业中智行再获多项殊荣

    在由政府和权威媒体主办的2021年度评选活动中,全球领先的车路协同无人驾驶企业中智行近日再获多项殊荣....
    的头像 中智行ALLRIDE 发表于 01-24 10:55 189次 阅读

    关于NVIDIA在线研讨会的详细内容

    了解一周的在线研讨会时间及详细内容,选择感兴趣的研讨会并提前安排收听时间;
    的头像 NVIDIA英伟达 发表于 01-24 10:33 174次 阅读

    STM32相关实验资料下载

    STM32相关实验资料下载
    发表于 01-23 09:28 33次 阅读

    瑞为技术斩获“2021年度最佳人工智能公司TOP30”

    近日,备受业内瞩目的机器之心「AI中国」2021年度评选榜单正式揭晓。瑞为技术凭借深耕多年的图像感知....
    的头像 瑞为技术Reconova 发表于 01-21 14:14 507次 阅读

    NVIDIA在线研讨会亮点前瞻

    DeepStream SDK 作为 IVA 智能视频分析工具集,为利用 AI 和机器视觉方法处理和分....
    的头像 NVIDIA英伟达企业解决方案 发表于 01-21 09:55 254次 阅读

    NVIDIA出席第十五届深圳国际金融科技博览会

    第十五届深圳国际金融科技博览会(“简称金博会”)在深圳会展中心1号馆举行。 众所周知,在金融行业,现....
    的头像 NVIDIA英伟达企业解决方案 发表于 01-21 09:31 986次 阅读

    智慧校园安装人脸识别门禁的好处都有哪些

    校园这个场所的人员流动性较大,主要涉及对象为学生和学校教职工。而大部分学校是以视频监控的方式来预防保....
    发表于 01-20 17:36 17次 阅读

    ACM32F070对比STM32F070的差异说明

    一、整体功能对比 分别选择两款芯片(LQFP64)最大配置资源的型号(STM32F070RB、ACM....
    发表于 01-20 17:33 51次 阅读

    易华录亮相第十六届中国智能交通年会

    第十六届中国智能交通年会(ITSAC 2021)暨2021中国智能交通大会在湖南长沙举行。本次活动由....
    的头像 易华录 发表于 01-20 16:35 361次 阅读

    小区电梯智能识别阻车系统的简单介绍

    电动车禁入电梯,电梯智能识别阻车系统 如何科学有效地防止电动车进电梯?答案就是,通过基于人工智能技术....
    发表于 01-20 14:00 47次 阅读

    一清创新荣获“最佳自动驾驶园区商用奖”

    「雷锋网2021最佳AI数智化年度榜」评选活动成功举办,一清创新荣获“最佳自动驾驶园区商用奖”,一清....
    的头像 一清创新UDI 发表于 01-20 12:02 1269次 阅读

    工业大数据加速融合AI向数据智能发展

    近期,由中国科学院《互联网周刊》、德本咨询、eNet研究院联合发布了“2021数字经济创新企业100....
    的头像 机智云物联网 发表于 01-20 10:58 488次 阅读

    如何建立真正的数据目录

    作者简介:王积杰目前担任IBM数据与AI产品线大中华区信息架构产品总监,对AI和信息架构有深刻的理解....
    的头像 IBM中国 发表于 01-20 10:22 246次 阅读

    2022年半导体行业十大发展趋势

    导语:随着光、温度、压力、磁场、电场等环境因素的变化,导电性会发生相当大的变化,这是半导体主要特性之....
    的头像 华秋商城 发表于 01-20 09:50 628次 阅读

    STM32f103ZET6最小系统板原理图下载

    STM32f103ZET6最小系统板原理图下载
    发表于 01-20 09:08 54次 阅读

    对话艾拉物联全球终端形象设计官 探寻划时代智慧空间2.0秘境

    Ayla Home,作为Ayla艾拉物联在实现“云边端”一体化基础上创建的智能家居品牌,旨在成为全球....
    发表于 01-19 17:26 17次 阅读
    对话艾拉物联全球终端形象设计官 探寻划时代智慧空间2.0秘境

    日产汽车将开展使用AI技术为电动汽车充电的实验

    电子发烧友网报道(文/李弯弯)据外媒报道,日产汽车1月12日宣布,公司将开展使用AI技术为电动汽车充....
    的头像 电子发烧友网 发表于 01-19 17:05 398次 阅读

    我国集成电路进出口逆差进一步扩大

    电子发烧友网报道(文/吴子鹏)前不久,工信部发布了《2021年1-11月份电子信息制造业运行情况》,....
    的头像 电子发烧友网 发表于 01-19 17:01 382次 阅读

    AI+安防市场规模将超900亿,各细分场景迎新机

    当下,随着行业智能化发展加快,安防边界愈发模糊,AI场景化需求持续落地。AI+安防作为人工智能技术的....
    发表于 01-19 14:55 417次 阅读

    所托瑞安亮相2021第二届全球保险科技大会

    日前,由金融界、天津港保税区联合举办的2021第二届全球保险科技大会暨“燕梳奖”年度评选活动隆重召开....
    的头像 智能防撞所托瑞安 发表于 01-19 13:32 334次 阅读

    长电科技SCK荣获澜起科技 “2021年最佳供应商”奖

    2022年1月19日,中国上海 ---近日,全球领先的集成电路制造和技术服务提供商长电科技子公司星科....
    发表于 01-19 12:09 53次 阅读
    长电科技SCK荣获澜起科技 “2021年最佳供应商”奖

    小马智行与一汽(南京)达成战略合作

    在自动驾驶技术应用落地的关键领域,小马智行再迎重量级合作伙伴。小马智行宣布与战略投资方中国一汽的全资....
    的头像 Pony.ai小马智行 发表于 01-19 12:05 403次 阅读

    阿尔法蛋AI词典笔X10助力解决家长辅导难题

    “双减”政策推出,个性化教育时代来临,孩子如何培养?家长们也是绞尽脑汁,希望能为孩子在学习的道路上提....
    发表于 01-19 10:43 15次 阅读

    来也科技RPA+AI加速智能化

    在数字化、自动化、智能化等技术浪潮的推进下,众多企业纷纷开始考虑转型、升级。在此趋势下,中交第二航务....
    的头像 话说科技 发表于 01-19 09:22 549次 阅读

    巧思人工智能宫颈细胞学辅助筛查系统助力精准医疗

    在刚刚结束的广东省病理年会医学会病理学学术年会上,深思考作为深耕于“AI+医疗”领域的高新技术企业,....
    的头像 旷视MEGVII 发表于 01-19 08:47 904次 阅读

    耐能亮相第十八届中国国际社会公共安全博览会

    第十八届中国(深圳)国际社会公共安全博览会(以下简称“深圳安博会”)在深圳福田会展中心如火如荼的举行....
    的头像 Kneron耐能 发表于 01-18 17:46 420次 阅读

    英特尔启动AI百佳创新激励计划

    作为未来最重要的赋能技术,人工智能正在加速与各行各业融合,不断释放数字经济的实力。为了推动人工智能行....
    的头像 英特尔中国 发表于 01-18 15:27 612次 阅读

    野火stm32单片机指南者原理图下载

    野火stm32单片机指南者原理图下载
    发表于 01-18 15:11 23次 阅读

    基于STM32的六足机器人的毕业设计文档分享

    这是天津成建大学的某位毕业生的毕业设计,该论文仅供学习使用。
    发表于 01-18 15:04 13次 阅读

    跑马灯实验——库函数h

    一、硬件连接LED0PA8LED1PD2选择GPIO输出方式:推挽输出:可以输出强高低电平二、库函数....
    发表于 01-18 11:22 18次 阅读
    跑马灯实验——库函数h

    STM32F407学习笔记——DHT11模块(温湿度传感器)

    STM32F407学习笔记——DHT11模块(温湿度传感器)一、基本原理:通过控制DHT11模块时序....
    发表于 01-18 11:20 27次 阅读
    STM32F407学习笔记——DHT11模块(温湿度传感器)

    【STM32-扩展模块】继电器模块Relay

    前言:继电器模块工作电压5V,吸合电流约70mA每路,带继电器状态指示灯;I/O信号输入直接与单片机....
    发表于 01-18 11:18 29次 阅读
    【STM32-扩展模块】继电器模块Relay

    八、STM32位带操作

    一、位带区与位带别名区(一)位带介绍1、位带操作在学习51单片机时就已经使用过位操作,比如使用sbi....
    发表于 01-18 11:12 27次 阅读
    八、STM32位带操作

    STM32的PWM以及DAC功能的实现

    在之前学习的STM32中,已经学会了通过给GPIO端口赋值高低电平来控制LED的亮灭。但在日常生活中....
    发表于 01-18 11:10 19次 阅读
    STM32的PWM以及DAC功能的实现

    GPIO工作原理

    5.2GPIO工作原理5.2.1 GPIO简介STM32L431RCT有64个IO,其中有16个在上....
    发表于 01-18 11:08 36次 阅读
    GPIO工作原理