作家
登录

如何使用CNN推理机在IoT设备上实现深度学习?

作者: 来源: 2017-12-07 12:04:53 阅读 我要评论

我们估计可以或许在几天内完成移植工作,然而,移植TensorFlow并不轻易,它依附于很多第三方库(见图1)。为了削减资本消费,大年夜多半物联网设备都运行在懊悔上,是以移植所有依附项可以说是一项艰苦的义务。我们花了一个礼拜的精力才使得TensorFlow得以在Zuluko上运行。此次经验也使我们从新思虑,比拟移植一个现有的平台,是否大年夜头开端构建一个新平台更值得。然而缺乏诸如卷积算子等根本的构建块,大年夜头开端构建并不轻易。此外,大年夜头开端构建的推理机也很难比一个久经测试的深度进修框架表示更优。

大年夜数据

图1 TensorFlow对第三方库的依附。因为依附于很多第三方库,将现有的深度进修平台(如TensorFlow)移植到物联网设备并不是一个简单的过程。

大年夜头开端构建推理机

ARM比来宣布推出其计算库(ACL,developer.arm.com/technologies/compute-library),为ARM Cortex-A系列CPU处理器和ARM Mali系列GPU实现了软件功能的综合集成。具体而言,ACL为CNNs供给了根本的构建模块,包含激活、卷积、全连接和局部连接、规范化、池化和softmax功能。这些功能恰是我们建立推理机所须要的。

大年夜数据

图2 在TensorFlow上运行的SqueezeNet推理机与应用ARM Compute Library(ACL)构建的SqueezeNet推理机的机能。大年夜头开端构建简单的推理引擎不仅须要较少的开辟时光,并且比拟现有的深度进修引擎,如TensorFlow,表示加倍优良。

为了更好地懂得机能增益的来源,我们将履行过程分为两部分:第一部分包含卷积、ReLU(线性整流函数)激活和级联;第二部分包含池化和softmax功能。图2所示的分析注解,SqueezeNet在第一部分中的机能比拟TensorFlow进步23%,在第二部分中进步110%。推敲资本应用率,当在TensorFlow上运行时,平均CPU应用率为75%,平均内存应用量为9MB;当在SqueezeNet上运行时,平均CPU应用率为90%,平均内存应用量约为10MB。两个原因带来了机能的晋升:起首,SqueezeNet供给了更好的NEON优化,所有ACL运算符都是应用NEON供给的运算符直接开辟的,而TensorFlow则依附ARM编译器来供给NEON优化。其次,TensorFlow平台本身可能会引起一些额外的机能开销。

接下来,我们欲望可以或许大年夜TensorFlow中榨出更多的机能,看看它是否能胜过我们构建的SqueezeNet推理机。一种常用的技巧是应用矢量量化,应用8位权重以精度来换取机能。8位权重的应用,使得我们可以经由过程向量操作,只需一个指令便可计算多个数据单位。然而,这种优化是有价值的:它惹人了从新量化和去量化操作。我们在TensorFlow中实现了这个优化,图3比较了有无优化的机能。应用矢量量化姑息积机能进步了25%,但因为去量化和从新量化操作,也明显地增长了开销。总体而言,它将全部推理过程减慢了跨越100毫秒。

大年夜数据

图3 有无矢量量化的TensorFlow机能。手动优化现有的深度进修平台(如TensorFlow)很艰苦,可能不会带来明显的机能晋升。

收集连接是易掉的,是以我们想要确保可以或许在本地设备上实现某种情势的智能,使其可以或许在ISP或收集故障的情况下持续运行。然而要想实现它,须要较高的枷⒚机能和功耗。

尽管将办事迁徙到云端可以或许削减物联网设备的功耗,但很难知足及时性请求。并且现有的深度进修平台是为了通用性义务而设计开辟的,同时实用于练习和推理义务,这意味着这些引擎未针对嵌入式推理义务进行优化。并且它们还依附于懊悔嵌入式体系上不易获得的其他第三方库,这些都使其异常难以移植。

更进一步

图4 物联网设备办事架构。我们须要一个新的体系架构来实现物联网设毕喔赡深度进修:起首,我们须要直接编译和优化深度进修模型生成目标设毕喔赡可履行代码; 其次,我们须要一个异常轻量级的操作体系,以实现多义务及其间的高效通信。IMU:惯性测量单位。

在本文中,我们将评论辩论若何应用CNN推理机在物联网设备上实现深度进修。

NNVM项目(github.com/dmlc/nnvm)是迈向这一目标的第一步。我们已经成功地扩大了NNVM来生成代码,以便我们可以应用ACL来加快ARM设毕喔赡深度进修操作。这种办法的另一个好处是,即使模型变得加倍复杂,我们仍然可以轻松地在物联网设备上实现它们。

当前的物联网设备平日因为计算资本的限制而履行单个义务。然而,我们估计很快将有可以或许履行多个义务的低功耗物联网设备(例如,我们的Zuluko设备就包含了四个内核)。为了应用这些设备,我们须要一个异常轻量级的消息传递协定来连接不合的办事。

如图4所示,物联网设备的根本办事包含传感,感知和决定计划。传感节点涉及处理来自例如摄像机,惯性测量单位和车轮测距的原始传感器数据。感知节点应用已处理的传感器数据,并对所捕获的信息进行解释,例如对象标签和设备地位。动作节点包含一组规矩,用于肯定在检测到特定事宜时若何响应,例如在检测到所有者的脸部时解锁门,或者当检测到障碍物时调剂机械人的活动路径。Nanomsg(nanomsg.org)是一个异常轻量级的消息传递框架,异常合适类似的义务。另一个选择是机械人操作体系,尽管我们发明对于物联网设备来说,其在内存占用和计算资本需求方面显得太重了。

大年夜数据


  推荐阅读

  为什么说自然语言处理是人工智能的核心

问答体系 开辟者大年夜赛路演 | 12月16日,技巧立异,北京不见不散 如不雅一台计算机可以或许欺哄仁攀类,让人信赖它是仁攀类,那么该计算机就应当被认为是智能的。——阿兰&midd>>>详细阅读


本文标题:如何使用CNN推理机在IoT设备上实现深度学习?

地址:http://www.17bianji.com/lsqh/39554.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)