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

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

3天内不再提示

开发嵌入式神经网络的现实

石飞鹏 来源:CZM陈先生123 作者:CZM陈先生123 2022-07-15 16:50 次阅读

关于将人工智能用于越来越智能的车辆的文章已经很多。但是,您如何将在服务器场上开发的神经网络 (NN) 压缩到量产汽车中资源受限的嵌入式硬件中呢?本文探讨了我们应该如何授权汽车生产 AI 研发工程师在将 NN 从原型到生产的整个过程中改进 NN,而不是像今天过早地将 NN 移交给嵌入式软件团队的过程。

“如果我们要充分利用嵌入式硬件资源,我们需要让生产 AI 团队在软件移植过程中利用他们对 NN 的知识”(来源:Marton Feher,SVP 硬件工程,AImotive)

嵌入式人工智能:嵌入式软件——但不是我们所知道的

对于任何注定要在批量生产中部署的嵌入式软件,一旦完成并验证了其核心功能的实现,就会在代码中投入大量精力。这个优化阶段是关于最小化所需的内存、CPU 和其他资源,以便尽可能多地保留软件功能,同时将执行它所需的资源减少到绝对最低限度。

这种从基于实验室的算法创建嵌入式软件的过程使生产工程师能够将软件功能成本工程化为可量产的形式,与用于开发它的海量计算数据中心相比,所需的芯片和硬件更便宜、功能更差。但是,它通常需要从一开始就冻结功能,只进行代码修改以改进算法本身的执行方式。对于大多数软件来说,这很好:确实,它可以使用严格的验证方法来确保嵌入过程保留所需的所有功能。

然而,当嵌入基于 NN 的 AI 算法时,这可能是一个主要问题。为什么?因为从一开始就冻结功能,您正在删除可以优化执行的主要方法之一。

问题是什么?

有两种根本不同的方法可以解决将复杂的 NN 从实验室中不受约束、资源丰富的 NN 训练环境移植到受严格约束的嵌入式硬件平台的任务:

优化执行NN的代码

优化神经网络本身

当嵌入式软件工程师发现性能问题,例如内存带宽瓶颈或底层嵌入式硬件平台利用率低下时,传统的嵌入式软件技术会鼓励您深入挖掘底层代码并找出问题所在。

这反映在当今可用于嵌入式MCUDSP的许多先进而复杂的工具中。它们使您能够了解软件中正在发生的事情的最低水平,并识别和改进软件本身的执行——希望不会改变其功能。

对于神经网络来说,优化与传统的嵌入式软件完全不同——至少如果你想用可用的硬件资源实现尽可能最佳的结果。对于神经网络,通过改变拓扑神经网络本身(神经网络的各个层如何连接,以及每个层做什么)和使用更新的约束和输入重新训练来实现改进。这是因为功能不是由神经网络“软件”定义的,而是在训练期间应用的目标和约束,以创建定义神经网络最终行为的权重。

因此,在执行神经网络的嵌入过程时,需要冻结神经网络的目标性能,而不是如何实现它。如果您从嵌入过程开始就约束神经网络拓扑,那么您就是在删除生产工程师需要的提高性能的工具。

这意味着您需要新的不同工具来完成将NNs从实验室移植到嵌入式平台的任务。低级软件工程师无法完成这项工作——你需要人工智能工程师根据工具提供的性能信息来调整神经网络及其训练。这是新的:当研发工程师将经过培训的神经网络交给生产工程师时,他们再也不能说“工作完成了”!

不同的方法

通过采用将 AI 研发工程师置于嵌入式软件移植任务中心的开发工作流程,任何芯片都可以实现卓越的结果。使用以层为中心的分析,辅以从编译改进的卷积神经网络 (CNN) 到查看目标神经处理器单元 (NPU) 的准确性能结果的几分钟内快速周转,开发人员可以使用相同的底层硬件实现 100% 或更多的增益. 这是因为修改 CNN 本身,而不是只修改用于执行相同 CNN 的代码,为 AI 工程师提供了更大的灵活性来识别和实施性能改进。

在开发我们的 aiWare NPU 时,AImotive 使用了我们自己的 AI 工程师将移植过程移植到具有广泛 NPU 功能的多个不同芯片的经验。我们希望找到更好的方法来帮助我们自己的 AI 工程师完成这项任务,因此在开发我们对 aiWare NPU 本身和支持它的 aiWare Studio 工具的要求时,我们确定了我们在过去的:

高度确定性的 NPU 架构,使时序非常可预测

准确的基于层(不是基于时序或低级代码)的性能估计,以便任何 AI 研发工程师都可以看到更改其训练标准(例如添加或更改使用的场景,或修改目标 KPI)的影响; / 或 NN 拓扑快速

准确的离线性能估计,以便在第一个硬件可用之前执行所有 NN 优化(因为第一个原型总是稀缺的!)

点击查看完整大小的图片

poYBAGG3EIKAVGprABB3v6LafIM851.png


图 1:aiWare Studio 使用户能够优化他们的 NN,而不是用于执行它们的代码。这为 AI 设计人员提供了更大的灵活性,可以更快地实现出色的结果。(来源:AImotive)

结果是一组工具使 AI 研发工程师能够在实验室环境中对目标硬件进行几乎所有优化,并在最终目标硬件的 5% 范围内展示性能——这一切都在任何人看到硬件之前完成。

最终检查

当然,在芯片和硬件原型可用时测量最终硬件至关重要。这种开发环境中实时硬件分析功能的可用性使工程师能够访问由此类工具支持的 NPU 内的一系列深度嵌入式硬件寄存器和计数器。虽然芯片开销很小(因为许多 NPU 主要由内存而非逻辑控制),但这些功能可以在执行期间实现前所未有的、非侵入式的实时性能测量。然后可以将其用于直接与离线性能估计器结果进行比较,以确认准确性。

点击查看完整大小的图片

poYBAGG3EIWAUiOjABWWAeWEhuU271.png


图 2:使用嵌入式寄存器和计数器,aiWare Studio 可以准确测量最终芯片性能,与离线估计结果相比,通常在 1%-5% 以内。(来源:AImotive 和 Nextchip Co. Ltd)

结论

这种新方法为汽车行业提供了一种新的、更好的方式来开发、优化和在生产车辆中部署人工智能。使用协同 NPU 硬件和工具,人工智能工程师可以为汽车应用设计、实施和优化更好的 CNN。

审核编辑 黄昊宇

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

    关注

    5096

    文章

    19201

    浏览量

    308333
  • 神经网络
    +关注

    关注

    42

    文章

    4785

    浏览量

    101280
  • AI
    AI
    +关注

    关注

    87

    文章

    31856

    浏览量

    270679
收藏 人收藏

    评论

    相关推荐

    BP神经网络与卷积神经网络的比较

    BP神经网络与卷积神经网络在多个方面存在显著差异,以下是对两者的比较: 一、结构特点 BP神经网络 : BP神经网络是一种多层的前馈神经网络
    的头像 发表于 02-12 15:53 101次阅读

    人工神经网络的原理和多种神经网络架构方法

    在上一篇文章中,我们介绍了传统机器学习的基础知识和多种算法。在本文中,我们会介绍人工神经网络的原理和多种神经网络架构方法,供各位老师选择。 01 人工神经网络   人工神经网络模型之所
    的头像 发表于 01-09 10:24 433次阅读
    人工<b class='flag-5'>神经网络</b>的原理和多种<b class='flag-5'>神经网络</b>架构方法

    【飞凌嵌入式OK3576-C开发板体验】RKNN神经网络-车牌识别

    LPRNet基于深层神经网络设计,通过轻量级的卷积神经网络实现车牌识别。它采用端到端的训练方式,不依赖字符分割,能够直接处理整张车牌图像,并输出最终的字符序列。这种设计提高了识别的实时性和准确性
    发表于 10-10 16:40

    【飞凌嵌入式OK3576-C开发板体验】RKNN神经网络算法开发环境搭建

    download_model.sh 脚本,该脚本 将下载一个可用的 YOLOv5 ONNX 模型,并存放在当前 model 目录下,参考命令如下: 安装COCO数据集,在深度神经网络算法中,模型的训练离不开大量的数据集,数据集用于神经网络模型的训练。
    发表于 10-10 09:28

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

    BP神经网络(Backpropagation Neural Network)和卷积神经网络(Convolutional Neural Network,简称CNN)是两种在人工智能和机器学习领域
    的头像 发表于 07-10 15:24 1780次阅读

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

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

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

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

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

    递归神经网络(Recurrent Neural Network,简称RNN)和循环神经网络(Recurrent Neural Network,简称RNN)实际上是同一个概念,只是不同的翻译方式
    的头像 发表于 07-04 14:54 915次阅读

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

    循环神经网络(Recurrent Neural Network,RNN)和卷积神经网络(Convolutional Neural Network,CNN)是深度学习领域中两种非常重要的神经网络
    的头像 发表于 07-04 14:24 1540次阅读

    深度神经网络与基本神经网络的区别

    在探讨深度神经网络(Deep Neural Networks, DNNs)与基本神经网络(通常指传统神经网络或前向神经网络)的区别时,我们需要从多个维度进行深入分析。这些维度包括
    的头像 发表于 07-04 13:20 1106次阅读

    反向传播神经网络和bp神经网络的区别

    反向传播神经网络(Backpropagation Neural Network,简称BP神经网络)是一种多层前馈神经网络,它通过反向传播算法来调整网络中的权重和偏置,以达到最小化误差的
    的头像 发表于 07-03 11:00 889次阅读

    bp神经网络是深度神经网络

    BP神经网络(Backpropagation Neural Network)是一种常见的前馈神经网络,它使用反向传播算法来训练网络。虽然BP神经网络在某些方面与深度
    的头像 发表于 07-03 10:14 975次阅读

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

    BP神经网络(Backpropagation Neural Network)和卷积神经网络(Convolutional Neural Network,简称CNN)是两种不同类型的人工神经网络,它们在
    的头像 发表于 07-03 10:12 1418次阅读

    卷积神经网络和bp神经网络的区别

    卷积神经网络(Convolutional Neural Networks,简称CNN)和BP神经网络(Backpropagation Neural Networks,简称BPNN)是两种
    的头像 发表于 07-02 14:24 4862次阅读

    神经网络在数学建模中的应用

    数学建模是一种利用数学方法和工具来描述和分析现实世界问题的过程。神经网络是一种模拟人脑神经元结构和功能的计算模型,可以用于解决各种复杂问题。在数学建模中,神经网络可以作为一种有效的工具
    的头像 发表于 07-02 11:29 1150次阅读