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

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

3天内不再提示

移动和嵌入式设备上也能直接玩机器学习?

5RJg_mcuworld 来源:未知 作者:邓佳佳 2018-03-22 16:36 次阅读

最近,机器学习(ML)话题大热,Arm也推出神经网络机器学习软件Arm NN。这是一项关键技术,可在基于 Arm 的高能效平台上轻松构建和运行机器学习应用程序。那么对于Arm NN,你又了解多少呢?

实质上,该软件桥接了现有神经网络框架(例如 TensorFlow或Caffe)与在嵌入式 Linux 平台上运行的底层处理硬件(例如 CPUGPU 或新型Arm 机器学习处理器)。这样,开发人员能够继续使用他们首选的框架和工具,经 Arm NN 无缝转换结果后可在底层平台上运行。

机器学习需要一个训练阶段,也就是学习阶段(“这些是猫的图片”),另外还需要一个推理阶段,也就是应用所学的内容(“这是猫的图片吗?”)。训练目前通常在服务器或类似设备上发生,而推理则更多地转移到网络边缘,这正是新版本 Arm NN 的重点所在。

对象识别是在嵌入式平台上运行的众多机器学习工作负载之一

一切围绕平台

机器学习工作负载的特点是计算量大、需要大量存储器带宽,这正是移动设备和嵌入式设备面临的最大挑战之一。随着运行机器学习的需求日益增长,对这些工作负载进行分区变得越来越重要,以便充分利用可用计算资源。软件开发人员面临的可能是很多不同的平台,这就带来一个现实问题:CPU 通常包含多个内核(在Arm DynamIQ big.LITTLE中,甚至还有多种内核类型),还要考虑 GPU,以及许多其他类型的专用处理器,包括 Arm 机器学习处理器,这些都是整体解决方案的一部分。

Arm NN 这时就能派上用场。下图中可以看出,Arm NN 扮演了枢纽角色,既隐藏了底层硬件平台的复杂性,同时让开发人员能够继续使用他们的首选神经网络框架。

Arm NN SDK 概览(首次发布版本)

您可能已经注意到,Arm NN 的一个关键要求是Compute Library,它包含一系列低级别机器学习和计算机视觉函数,面向Arm Cortex-ACPU 和Arm Mali GPU。我们的目标是让这个库汇集针对这些函数的一流优化,近期的优化已经展示了显著的性能提升——比同等 OpenCV 函数提高了 15 倍甚至更多。如果您是Cortex-MCPU 的用户,现在还有一个机器学习原语库,也就是近期发布的CMSIS-NN。

Arm NN主要优势

有了 Arm NN,开发人员可以即时获得一些关键优势:

更轻松地在嵌入式系统上运行 TensorFlow 和 Caffe

Compute Library 内部的一流优化函数,让用户轻松发挥底层平台的强大性能

无论面向何种内核类型,编程模式都是相同的

现有软件能够自动利用新硬件特性

与 Compute Library 相同,Arm NN 也是作为开源软件发布的,这意味着它能够相对简单地进行扩展,从而适应 Arm 合作伙伴的其他内核类型。

适用于 Android 的 Arm NN

在2017年五月举行的 Google I/O 年会上,Google 发布了针对 Android 的 TensorFlow Lite,预示着主要新型 API 开始支持在基于 Arm 的 Android 平台上部署神经网络。表面上,这与 Android 下的Arm NN SDK解决方案非常相似。使用 NNAPI 时,机器学习工作负载默认在 CPU 上运行,但硬件抽象层 (HAL) 机制也支持在其他类型的处理器或加速器上运行这些工作负载。Google 发布以上消息的同时,我们的 Arm NN 计划也进展顺利,这是为使用 Arm NN 的 Mali GPU 提供 HAL。今年晚些时候,我们还将为Arm 机器学习处理器提供硬件抽象层。

Arm 对 Google NNAPI 的支持概览

CMSIS-NN

CMSIS-NN 是一系列高效神经网络内核的集合,其开发目的是最大程度地提升神经网络的性能,减少神经网络在面向智能物联网边缘设备的 Arm Cortex-M 处理器内核上的内存占用。我们开发这个库的目的是全力提升这些资源受限的 Cortex CPU 上的神经网络推理性能。借助基于 CMSIS-NN 内核的神经网络推理,运行时/吞吐量和能效可提升大约 5 倍。

Arm NN 的未来发展

这只是 Arm NN 的第一步:我们还计划添加其他高级神经网络作为输入,对 Arm NN 调试程序执行进一步的图形级别优化,覆盖其他类型的处理器或加速器……请密切关注今年的发展!

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

    关注

    134

    文章

    8651

    浏览量

    361776
  • 嵌入式
    +关注

    关注

    4981

    文章

    18281

    浏览量

    288401
  • 神经网络
    +关注

    关注

    42

    文章

    4572

    浏览量

    98743
  • 机器学习
    +关注

    关注

    66

    文章

    8122

    浏览量

    130556

原文标题:移动和嵌入式设备上也能直接玩机器学习?

文章出处:【微信号:mcuworld,微信公众号:嵌入式资讯精选】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    嵌入式热门发展方向有哪些?

    热门发展方向,包括但不限于: 1.物联网: 随着物联网的快速发展,嵌入式系统在物联网领域的应用越来越广泛。嵌入式系统可以用于物联网设备的控制、监测和数据处理等方面。例如,在服务领域,
    发表于 04-11 14:17

    如何成为一名嵌入式C语言高手?

    相关教材、参加在线课程或者参考编程书籍来系统地学习C语言的基础知识,并通过编写简单的程序进行实践。 二、深入了解嵌入式系统的硬件架构和工作原理嵌入式系统通常包含微控制器或微处理器等硬件设备
    发表于 04-07 16:03

    如何成为一名嵌入式C语言高手?

    相关教材、参加在线课程或者参考编程书籍来系统地学习C语言的基础知识,并通过编写简单的程序进行实践。 二、深入了解嵌入式系统的硬件架构和工作原理嵌入式系统通常包含微控制器或微处理器等硬件设备
    发表于 03-25 14:12

    嵌入式会越来越卷吗?

    。这种技术进步为嵌入式系统的应用提供了更多可能性,使得其在移动设备、医疗保健等领域的应用更加灵活和可靠。同时,新兴技术领域,如人工智能、机器学习
    发表于 03-18 16:41

    嵌入式系统发展前景?

    应用领域。随着汽车电子化和智能化程度的不断提高,嵌入式系统将在汽车控制、安全系统、自动驾驶等方面发挥更为重要的作用。 工智能和机器学习技术的发展为嵌入式系统提供了新的发展机遇。
    发表于 02-22 14:09

    嵌入式学习步骤

    开发板测试固件以及在实际设备上进行测试。 嵌入式系统的多样化发展,它将更为广泛地应用于各个领域,实现智能化、网络化、自动化的目标。同时,随着人工智能和机器
    发表于 02-02 15:24

    嵌入式开发学习的十三法则分享

    嵌入式开发学习是一个不断积累和总结的过程,来自一个嵌入式开发高级工程师为我们总结的关于嵌入式开发学习的十三法则,大家不妨参考一下: 一、
    发表于 12-21 06:32

    什么是嵌入式Linux?

    Linux到底是什么呢? 嵌入式linux 是将日益流行的Linux操作系统进行裁剪修改,使之能在嵌入式计算机系统运行的一种操作系统。简单来说,是除了电脑之外可以运行程序的设备,将C
    发表于 10-11 13:47

    从事嵌入式工作有哪些优势?

    随着物联网和人工智能的发展,嵌入式技术越来越值钱,学嵌入式的人越来越多,现在开始入行嵌入式。根据一些权威部门统计,我国目前嵌入式软件人才缺
    发表于 10-08 15:05

    嵌入式新手应该怎么学?

    的图形界面操作都要转化为命令传输给硬件的。 4、Linux设备驱动的架构要了解,结合原理图和Linux设备驱动相关书籍把每一行代码分析清楚。 上面只是一些简单的嵌入式学习要点,你要先掌
    发表于 09-08 10:22

    HarmonyOS\"一次开发,多端部署\"优秀实践——玩机技巧,码上起航

    常用的应用,通过\"一多\",部署在手机、折叠屏、平板等多设备,不仅获得了体验提升,开发代码量下降了约40%。下文,我们将从架构设计、UI设计、交互设计和架4个层面对
    发表于 08-30 18:14

    嵌入式编程中为什么使用qemu?qemu的实际应用

    framebuffer,来进行各种界面的设计。同时,如果想新学习一款嵌入式编程语言,或者深入理解一些处理器的架构方面的知识,通过裸机编程,直接到qemu运行
    发表于 08-16 06:44

    如何使用TensorFlow将神经网络模型部署到移动嵌入式设备

    有很多方法可以将经过训练的神经网络模型部署到移动嵌入式设备。不同的框架在各种平台上支持Arm,包括TensorFlow、PyTorch、Caffe2、MxNet和CNTK,如And
    发表于 08-02 06:43

    嵌入式学习路线你知道吗?

    外围设备的硬件工作原理,以及如何使用C语言来编程、控制这些硬件。除了要学习对硬件编程之外,还需要学习嵌入式硬件的知识,但是对于嵌入式软件工程
    发表于 06-14 16:00

    什么人适合学习嵌入式开发?

    操作系统和应用软件的开发。嵌入式设备的增值很大程度上取决于嵌入式软件,这一领域占了嵌入式系统的最主要的工作部分,因为很多公司都知道,嵌入式
    发表于 06-07 15:55