STM32Cube.AI v7.3能够在推理时间和RAM之间找到完美的平衡

描述

STM32Cube.AI 7.3 启动了一个新系统,使开发人员能够选择是优先考虑 RAM、性能还是两者之间的平衡方法。因此,它建立在先前版本 STM32Cube.AI 7.2的工作基础上,该版本引入了扩展层和深度量化神经网络,并允许用户根据其约束对其进行微调算法。新的软件版本也具有高度的象征意义,因为我们今天宣布加入MLCommons™联盟。该计划使我们能够为社区做出贡献,并将帮助团队弄清楚他们可以通过边缘机器学习做什么,这要归功于客观和可重复的基准。

从大型超级计算机到微控制器

什么是 STM32Cube.AI?

STM2019Cube.AI 于32年推出,将神经网络转换为STM32 MCU的优化代码。算法可以在微控制器等资源约束设备上运行,这一事实是该领域的一个关键演变。1956年,创造“机器学习”一词的亚瑟·塞缪尔(Arthur Samuel)正在开发一个教计算机玩跳棋的程序时,他不得不在IBM 701大型机上工作,并在大型科学IBM 7094上运行他的程序。之后,机器学习一直需要大量的计算吞吐量。甚至在意法半导体推出 STM32Cube.AI 之前的几年,行业领导者都在由强大机器组成的云上运行机器学习算法。

STM32Cube.AI 很特别,因为它有助于在MCU上运行算法,并使开发机器学习应用程序变得更加容易。它依赖于STM32CubeMX和X-CUBE-AI软件包,前者可帮助开发人员初始化STM32设备,后者是一个软件包,其中包含用于转换预训练神经网络的库。因此,该解决方案使用熟悉且可访问的开发环境。团队甚至可以使用我们的入门指南,从STM32CubeMX开始使用X-CUBE-AI,并快速尝试最新功能。因此,更多的应用依赖于我们的技术。例如,早期版本中引入的对深度量化神经网络的附加支持很快进入了施耐德电气创建的人数统计应用程序。

STM32Cube.AI v7.3 中有哪些新功能?

STM32Cube.AI v7.3 带来了一项新功能,允许开发人员选择是优先考虑 RAM 还是推理时间。由于在以前的版本中引入了扩展层,意法半导体的解决方案优化了性能。然而,这也意味着该算法在易失性存储器中可能具有更大的占用空间。为了让开发人员更好地控制他们的应用程序,意法半导体在 STM32Cube.AI v7.3中引入了一个新设置来定义优先级。如果用户选择“时间”设置,算法将占用更多 RAM,但推理时间更快。另一方面,选择“RAM”将具有最小的内存占用和最慢的时间。最后,默认的“平衡”参数在两种方法之间找到中间地带,提供了一个很好的折衷方案。

根据我们的基准测试,在某些情况下,将 RAM 占用空间减少 36% 会使推理时间增加 50%。如果我们看一下比率,使用“时间”设置时,2 KiB 的 RAM 等于 1 毫秒的推理时间,但在选择“RAM”时,该比率会显着恶化。因此,在许多情况下,用户会选择“时间”并享受更高的每内存性能比。但是,我们知道一些客户受到RAM的极大限制,并且每千字节计数。在这种情况下,工程师很乐意采用较短的推理时间来节省内存,这就是为什么我们努力提供精细的体验,帮助开发人员根据他们的需求定制应用程序,从而进一步普及边缘机器学习。

STM32Cube.AI:从研究到实际软件

什么是神经网络?

STM32Cube.AI 采用预先训练的神经网络,并将其转换为STM32 MCU的优化代码。在最简单的形式中,神经网络只是一系列层。两者之间有一个输入层、一个输出层以及一个或多个隐藏层。因此,深度学习是指具有三层以上层的神经网络,“深度”一词指向多个中间层。每层包含节点,每个节点与下层中的一个或多个节点互连。因此,简而言之,信息通过输入层进入神经,穿过隐藏层,然后从其中一个输出节点出来。

什么是量化神经网络和二值化神经网络?

为了确定信息如何在网络中传播,开发人员使用权重和偏差,即节点内的参数,这些参数将在数据在网络中移动时影响数据。权重是系数。权重越复杂,网络就越准确,但它的计算量就越大。每个节点还使用激活函数来确定如何转换输入值。因此,为了提高性能,开发人员可以使用量化神经网络,该网络使用较低精度的权重。最有效的量化神经网络是二值化神经网络(BNN),它仅使用两个值作为权重和激活:+1和-1。因此,BNN 需要的内存占用非常少,但精度也最低。

为什么深度量化神经网络很重要?

业界面临的挑战是找到一种方法来简化神经网络,以便在微控制器上运行推理操作,而不会牺牲准确性,使网络变得无用。为了解决这个问题,意法半导体和意大利萨勒诺大学的研究人员研究了深度量化的神经网络。DQNN 仅使用较小的权重(从 1 位到 8 位),并且可以包含仅具有一些二值化层的混合结构,而其他结构则使用更高的位宽浮点量化器。研究论文1意法半导体和大学的研究人员展示了哪种混合结构可以提供最佳结果,同时实现最低的RAM和ROM占用空间。

新版本的 STM32Cube.AI 是这些研究工作的直接结果。事实上,版本 7.2 支持深度量化神经网络,可以在不破坏准确性的情况下从二值化层的效率中受益。开发人员可以使用QKeras或Larq等框架来预训练他们的网络,然后再通过X-CUBE-AI处理它。迁移到DQNN将有助于节省内存使用量,从而使工程师能够选择更具成本效益的设备,或者为整个系统使用一个微控制器而不是多个组件。因此,STM32Cube.AI 继续为边缘计算平台带来更强大的推理功能。

从演示应用到市场趋势

如何使人数统计演示?

意法半导体和施耐德电气最近合作开发了一款利用DQNN的人数统计应用程序。该系统通过处理热传感器图像在STM32H7上运行推理,以确定人们是否越过假想线以及决定他们是进入还是离开的方向。组件的选择非常出色,因为它促进了相对较低的物料清单。施耐德没有转向更昂贵的处理器,而是使用深度量化的神经网络来显着降低其内存和 CPU 使用率,从而缩小了应用程序的占用空间,并为更具成本效益的解决方案打开了大门。两家公司在 2022 年 《》 月的 TinyML 会议上展示了该演示。

如何克服机器学习在边缘的炒作?

意法半导体是第一家提供类似 STM32Cube.AI 解决方案的MCU制造商,根据MLCommons基准测试,我们的工具性能继续名列前茅。正如从学术论文到软件发布的最新旅程所表明的那样,我们业绩背后的原因是我们优先考虑影响实际应用的有意义的研究。这是关于使人工智能实用且易于访问,而不是一个流行语。Gartner的市场分析师2预计从事嵌入式AI的公司将很快经历“幻灭的低谷”。今天的发布和施耐德的演示应用表明,意法半导体率先以研究为动力,克服了这一缺陷,成为实际应用和深思熟虑优化的中心。

审核编辑:郭婷

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分