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 工具包更加全面。

审核编辑:郭婷

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

    关注

    48

    文章

    7487

    浏览量

    151022
  • mcu
    mcu
    +关注

    关注

    146

    文章

    16984

    浏览量

    350240
  • 神经网络
    +关注

    关注

    42

    文章

    4762

    浏览量

    100522
收藏 人收藏

    评论

    相关推荐

    如何在STM32f4系列开发板上部署STM32Cube.AI

    已下载STM32Cube.AI扩展包,但是无法使用,感觉像是没有部署AI模型,我是想要通过摄像头拍照,上传图像后,经过开发板处理器进行AI模型处理识别过后,告诉我识别结果,显示在TFLCD屏幕上
    发表于 11-18 09:39

    神经网络优化器有哪些

    神经网络优化器是深度学习中用于调整网络参数以最小化损失函数的重要工具。这些优化器通过不同的策略来更新网络权重,以提高训练效率和模型性能。以下
    的头像 发表于 07-11 16:33 497次阅读

    BP神经网络和卷积神经网络的关系

    广泛应用的神经网络模型。它们各自具有独特的特点和优势,并在不同的应用场景中发挥着重要作用。以下是对BP神经网络和卷积神经网络关系的详细探讨,内容涵盖两者的定义、原理、区别、联系以及应
    的头像 发表于 07-10 15:24 1198次阅读

    BP神经网络和人工神经网络的区别

    BP神经网络和人工神经网络(Artificial Neural Networks,简称ANNs)之间的关系与区别,是神经网络领域中一个基础且重要的话题。本文将从定义、结构、算法、应用及未来发展等多个方面,详细阐述BP
    的头像 发表于 07-10 15:20 813次阅读

    rnn是递归神经网络还是循环神经网络

    RNN(Recurrent Neural Network)是循环神经网络,而非递归神经网络。循环神经网络是一种具有时间序列特性的神经网络,能够处理序列数据,具有记忆功能。以下是关于循环
    的头像 发表于 07-05 09:52 489次阅读

    递归神经网络与循环神经网络一样吗

    时具有各自的优势和特点。本文介绍递归神经网络和循环神经网络的概念、结构、工作原理、优缺点以及应用场景。 递归神经网络(Recursive Neural Network,RvNN) 1
    的头像 发表于 07-05 09:28 688次阅读

    递归神经网络是循环神经网络

    。 递归神经网络的概念 递归神经网络是一种具有短期记忆功能的神经网络,它能够处理序列数据,如时间序列、文本、语音等。与传统的前馈神经网络不同,递归
    的头像 发表于 07-04 14:54 625次阅读

    循环神经网络和卷积神经网络的区别

    结构。它们在处理不同类型的数据和解决不同问题时具有各自的优势和特点。本文将从多个方面比较循环神经网络和卷积神经网络的区别。 基本概念 循环神经网络是一种具有循环连接的神经网络结构,它可
    的头像 发表于 07-04 14:24 1105次阅读

    神经网络优化算法有哪些

    神经网络优化算法是深度学习领域中的核心技术之一,旨在通过调整网络中的参数(如权重和偏差)来最小化损失函数,从而提高模型的性能和效率。本文详细探讨
    的头像 发表于 07-03 16:01 434次阅读

    bp神经网络和卷积神经网络区别是什么

    结构、原理、应用场景等方面都存在一定的差异。以下是对这两种神经网络的比较: 基本结构 BP神经网络是一种多层前馈神经网络,由输入层、隐藏层和输出层组成。每个神经元之间通过权重连接,并通
    的头像 发表于 07-03 10:12 997次阅读

    BP神经网络激活函数怎么选择

    中,激活函数起着至关重要的作用,它决定了神经元的输出方式,进而影响整个网络的性能。 一、激活函数的作用 激活函数是BP神经网络神经元的核心组成部分,其主要作用如下: 引入非线性:激活
    的头像 发表于 07-03 10:02 576次阅读

    生成式AI神经网络模型的区别和联系

    生成式AI神经网络模型是现代人工智能领域的两个核心概念,它们在推动技术进步和应用拓展方面发挥着至关重要的作用。本文详细探讨生成式AI神经网络
    的头像 发表于 07-02 15:03 580次阅读

    如何训练和优化神经网络

    神经网络是人工智能领域的重要分支,广泛应用于图像识别、自然语言处理、语音识别等多个领域。然而,要使神经网络在实际应用中取得良好效果,必须进行有效的训练和优化。本文将从神经网络的训练过程
    的头像 发表于 07-01 14:14 391次阅读

    CubeIDE生成的代码框架会卡在MX_X_CUBE_AI_Process()函数中是怎么回事?

    当我网络模型部署到STM32F407VGT6中时,CubeIDE生成的代码框架会卡在MX_X_CUBE_AI_Process()函数中是怎
    发表于 05-30 06:11

    STM32CubeMX导入神经网络,aiRun的indata应该定义成什么格式呢?

    我用STM32CubeMX中的X-Cube-AI, 导入了一个处理时间序列的神经网络网络input是2维数据,如(10,256,2) 在Generate code之后,在main.
    发表于 03-13 07:38