0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

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

3天内不再提示

STM32Cube.AI将神经网络转换为STM32的优化代码

星星科技指导员 来源:意法半导体 作者:意法半导体 2022-05-16 10:24 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

STM32Cube.AI是业界最先进的工具包,能够与流行的深度学习库互操作,以转换任何用于 STM32 微控制器的人工神经网络MCU)运行优化推理。该软件套件包括 X-Cube 扩展软件X-CUBE-AI 、为我们的SensorTile 开发套件 (STEVAL-STLKT01V1)提供应用示例的功能包FP-AI-SENSING1,以及对我们的ST BLE 传感器的更新为功能包的演示提供 GUI 和控件的 iOSAndroid 应用程序。仅发布这些解决方案已经是一个开创性的公告,因为目前没有任何工具可以与此功能集相媲美。然而,STM32Cube.AI 不仅仅是一个简单的工具包,而是反映了我们希望通过将神经网络带给所有 STM32 开发人员来改变物联网格局的愿望。

倾向于专门研究使用我们 STM32 MCU 的嵌入式系统类型的人可能不熟悉神经网络的最新进展。同样,使用几乎无限的云资源进行机器学习的数据科学家可能对嵌入式平台的内存和计算限制不熟悉。因此,STM32Cube.AI 通过揭开人工智能和嵌入式系统的神秘面纱弥合了差距。我们展示了专家和工具随时可用,并且很容易利用边缘计算的日益普及在我们的平台上运行推理。换句话说,STM32Cube.AI 证明了嵌入式系统上的神经网络已经存在。

STM32Cube.AI 将数据科学带给嵌入式系统专家

STM32Cube.AI 套件的基础部分是 X-CUBE-AI,它用作 STM32CubeMX 代码生成器的扩展包。不熟悉我们生态系统的人会喜欢我们的分步指南,该指南解释了如何使用它来配置微控制器的引脚和时钟树等,并生成将启动他们的应用程序的头文件。X-CUBE-AI显着扩展了 STM32CubeMX 的功能集,使其能够导入由当今一些最流行的库(例如 Keras、TensorFlow、Caffe、Lasagne 或 ConvnetJS)训练的人工神经网络。通过 X-CUBE-AI,STM32CubeMX 将在 STM32 MCU 上映射神经网络并优化生成的库例如,折叠它的一些层并减少它的内存占用。然后代码生成器将生成一个开发人员可以在应用程序中使用的库。

如果专业人士甚至爱好者想要快速开始试验我们的 STM32Cube.AI 计划,他们可以使用功能包 FP-AI-SENSING1,其中包括两个充分利用我们的 SensorTile 开发套件的应用示例。其中之一使用车载麦克风捕获音频、预处理信号,然后使用推理来确定声音是来自室内、室外还是来自车辆内部。

类似地,另一个示例程序跟踪运动以确定用户是静止的、步行的、跑步的、骑自行车的还是开车的。我们已经编译了二进制文件,因此用户只需将文件拖放到他们的系统上即可开始使用这些应用程序以加载演示。我们还提供硬件抽象层、驱动程序和源代码等,因此开发人员可以从我们的实现中学习并开始编写他们的测试软件。

区分神经网络和决策树

X-CUBE-AI 和 FP-AI-SENSING1 都可以提供神经网络,这要归功于对物联网平台上深度学习系统实施的多年研究。然而,今天的公告具有高度的象征意义,因为 STM32Cube.AI 将所有这些论文和发现结合在一个解决方案中,通过允许将大量拓扑转换到我们的平台上以用于许多不同的应用,扩大了以前可能的范围。

虽然新工具实现了人工神经网络,但我们想要区分这样一个事实,即我们还通过使用决策树为资源稀缺的运动传感器带来机器学习能力。从最广泛的意义上说,机器学习使用数学模型来处理数据并估计最佳结果或决策。决策树是机器学习中的分类器模型,它反复将特征空间解析为一系列路径(分支)并贯穿它们,直到系统到达一个端点(叶子),它代表一个类或决策。2019 年,我们的惯性传感器 LSM6DSOX 将使用决策树来提供机器学习功能因为这是提供新的低功耗特性的好方法,无需微控制器的帮助即可处理来自一个或两个传感元件的数据。

与决策树相反,神经网络不是使用 if-then-else 语句解析特征空间的算法,而是连接单元(神经元)的框架,这些单元(神经元)在系统通过示例学习时获得不同的权重。然后应用程序可以使用生成的模型来推断和估计最合适的响应。神经网络中的决策过程并不那么明显,在某些用例中,它可能需要比决策树更多的资源,但它可以处理更大的数据流,以便在更广泛的领域提供更准确的结果应用程序。

STM32Cube.AI 为数据科学家带来嵌入式系统

依赖于神经网络的应用程序的性能和准确性来自对必须收集的数据类型和质量的正确分析,并与适当网络拓扑的选择紧密结合。当我们谈论深度嵌入式解决方案时,情况更是如此。因此,我们确保我们的合作伙伴计划将包括能够在此过程中提供必要专业知识来指导我们的客户的公司。

我们计划的一些成员掌握了特定的研究领域,例如Lenord+Bauer专注于运动传感器,并展示了我们的平台和人工智能如何导致火车轨道的预测性维护。其他公司,如SIANA Systems,为医疗、工业、家庭自动化和可穿戴应用提供更丰富的经验。无论如何,这些合作伙伴将使 STM32 开发人员能够摆脱我们应用示例的限制,并将神经网络模型训练到与新商业产品兼容的水平。

STM32Cube.AI 为拓扑专家带来嵌入式系统

我们的合作伙伴还将协助公司选择正确的拓扑结构。拓扑是网络神经元之间互连的表示,它显示了它们如何与输入交互、相互影响以及获得一个或多个输出。最简单的拓扑(多层感知器)添加多个输入并提供具有全方位连接的输出,而当今更常见的拓扑(例如卷积神经网络)使用一系列输入互连到一组异构过滤提供越来越可能的输出的神经元。今天,数据科学家继续改进和优化这些拓扑,但基本原理保持不变。

例如,音频应用程序传统上使用门控循环单元 (GRU),它依赖于具有能够回忆先前信息的记忆的神经元。然而,今天,专家们倾向于更喜欢长期/短期记忆拓扑 (LSTM),这种拓扑在利用长期时间信息方面更强大,但代价是更多的内存和计算。

STM32Cube.AI:2019 年会发生什么?

STM32Cube.AI 工具箱的美妙之处在于它使开发人员能够立即开始使用神经网络,即使他们不是数据挖掘和拓扑方面的专家。此外,这些解决方案帮助他们提高生产力,因为他们不再需要编写耗时的库,因为 STM32CubeMX 只是生成它们。事实上,Function Pack 使用应用示例帮助工程师和爱好者在几分钟内试验我们的解决方案,我们将在 2019 年第一季度将这些应用示例提供给更多客户,因为我们带来了 FP-AI 的演示-SENSING1 到B-L475E-IOT01A 发现物联网节点。因此,我们的计划将继续接收更新,以使其更易于使用并可供更多开发人员使用。

我们还将确保 STM32CubeMX 可以在更多 MCU 上转换预训练的人工神经网络。代码生成器包括一个选择工具,可以分析网络的复杂性,以推荐具有适当计算吞吐量和内存量的 STM32。今天,X-CUBE-AI 只能将网络转换为具有浮点单元的微控制器,这意味着它需要一个至少具有 Cortex M4 的模型。然而,我们正在努力更新我们的工具以支持定点实现,这最终将把神经网络带入甚至更低功耗的系统或加速我们更强大的微控制器的推理。同样,我们将逐步添加对其他 AI 框架的支持,使 STM32Cube.AI 工具包更加全面。

审核编辑:郭婷

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

    关注

    49

    文章

    8909

    浏览量

    166038
  • mcu
    mcu
    +关注

    关注

    147

    文章

    19232

    浏览量

    405185
  • 神经网络
    +关注

    关注

    42

    文章

    4845

    浏览量

    108373
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    如何在 STM32Cube CMake 工程中添加源文件

    STM32Cube for Visual Studio Code V3 版本(例如,如下图所示的 Pre-release V3.4.11)打开,编辑,编译以及调试。但是除了 STM32CubeMX 生成的文件,还有自己开发的源文件。例如,在根目录下有个目录名为 cust
    发表于 04-15 16:07 0次下载

    神经网络的初步认识

    日常生活中的智能应用都离不开深度学习,而深度学习则依赖于神经网络的实现。什么是神经网络神经网络的核心思想是模仿生物神经系统的结构,特别是大脑中神经
    的头像 发表于 12-17 15:05 526次阅读
    <b class='flag-5'>神经网络</b>的初步认识

    CNN卷积神经网络设计原理及在MCU200T上仿真测试

    数的提出很大程度的解决了BP算法在优化深层神经网络时的梯度耗散问题。当x&gt;0 时,梯度恒为1,无梯度耗散问题,收敛快;当x&lt;0 时,该层的输出为0。 CNN
    发表于 10-29 07:49

    NMSIS神经网络库使用介绍

    NMSIS NN 软件库是一组高效的神经网络内核,旨在最大限度地提高 Nuclei N 处理器内核上的神经网络的性能并最​​大限度地减少其内存占用。 该库分为多个功能,每个功能涵盖特定类别
    发表于 10-29 06:08

    构建CNN网络模型并优化的一般化建议

    通过实践,本文总结了构建CNN网络模型并优化的一般化建议,这些建议将会在构建高准确率轻量级CNN神经网络模型方面提供帮助。 1)避免单层神经网络:我们清楚
    发表于 10-28 08:02

    在Ubuntu20.04系统中训练神经网络模型的一些经验

    , batch_size=512, epochs=20)总结 这个核心算法中的卷积神经网络结构和训练过程,是用来对MNIST手写数字图像进行分类的。模型图像作为输入,通过卷积和池化层提取图像的特征,然后通过全连接层进行分类预测。训练过程中,模型通过最小化损失函数来
    发表于 10-22 07:03

    立即在GitHub上抢先体验面向STM32U5的最新STM32Cube HAL更新

    其满足您的需求。 如何获取预览版本 面向STM32U5系列的STM32Cube HAL2预览版已在GitHub代码STM32CubeU5-V2-Preview中开放。 更新后的HAL
    的头像 发表于 10-20 17:12 1414次阅读

    CICC2033神经网络部署相关操作

    在完成神经网络量化后,需要将神经网络部署到硬件加速器上。首先需要将所有权重数据以及输入数据导入到存储器内。 在仿真环境下,可将其存于一个文件,并在 Verilog 代码中通过 readmemh 函数
    发表于 10-20 08:00

    液态神经网络(LNN):时间连续性与动态适应性的神经网络

    1.算法简介液态神经网络(LiquidNeuralNetworks,LNN)是一种新型的神经网络架构,其设计理念借鉴自生物神经系统,特别是秀丽隐杆线虫的神经结构,尽管这种微生物的
    的头像 发表于 09-28 10:03 1692次阅读
    液态<b class='flag-5'>神经网络</b>(LNN):时间连续性与动态适应性的<b class='flag-5'>神经网络</b>

    【「AI芯片:科技探索与AGI愿景」阅读体验】+神经形态计算、类脑芯片

    AI芯片不仅包括深度学细AI加速器,还有另外一个主要列别:类脑芯片。类脑芯片是模拟人脑神经网络架构的芯片。它结合微电子技术和新型神经形态器件,模仿人脑
    发表于 09-17 16:43

    神经网络的并行计算与加速技术

    随着人工智能技术的飞速发展,神经网络在众多领域展现出了巨大的潜力和广泛的应用前景。然而,神经网络模型的复杂度和规模也在不断增加,这使得传统的串行计算方式面临着巨大的挑战,如计算速度慢、训练时间长等
    的头像 发表于 09-17 13:31 1378次阅读
    <b class='flag-5'>神经网络</b>的并行计算与加速技术

    【「AI芯片:科技探索与AGI愿景」阅读体验】+AI的未来:提升算力还是智力

    。 耦合振荡计算与传统的计算的区别: 3、神经符号计算 神经符号极端是指基于神经网络的方法与基于符号知识的方法结合的AI计算。
    发表于 09-14 14:04

    无刷电机小波神经网络转子位置检测方法的研究

    摘要:论文通过对无刷电机数学模型的推导,得出转角:与三相相电压之间存在映射关系,因此构建了一个以三相相电压为输人,转角为输出的小波神经网络来实现转角预测,并采用改进遗传算法来训练网络结构与参数,借助
    发表于 06-25 13:06

    神经网络专家系统在电机故障诊断中的应用

    摘要:针对传统专家系统不能进行自学习、自适应的问题,本文提出了基于种经网络专家系统的并步电机故障诊断方法。本文小波神经网络和专家系统相结合,充分发挥了二者故障诊断的优点,很大程度上降低了对电机
    发表于 06-16 22:09

    基于FPGA搭建神经网络的步骤解析

    本文的目的是在一个神经网络已经通过python或者MATLAB训练好的神经网络模型,训练好的模型的权重和偏置文件以TXT文件格式导出,然后通过python程序txt文件转化为coe
    的头像 发表于 06-03 15:51 1597次阅读
    基于FPGA搭建<b class='flag-5'>神经网络</b>的步骤解析