作家
登录

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

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

经由过程应用ACL构建块来建立嵌入式CNN推理引擎,我们可以充分应用SoC的异构计算资本获得高机能。是以,问题变为是选择移植现有引擎,照样大年夜零开端构建它们更轻易。我们的经验注解,如不雅模型很简单,比拟之下大年夜头开端构建它们轻易得多。而跟着模型越来越复杂,在某些情况下,可能我们迁徙现有引擎相对加倍高效。然而,推敲到嵌入式设备实际运行的义务,不大年夜可能会须要用到复杂的模型。是以我们得出结论,大年夜头开端构建一个嵌入式推理引擎或许是向物联网设备供给深度进修才能的可行办法。

开辟者大年夜赛路演 | 12月16日,技巧立异,北京不见不散


大年夜数据

经由过程深度进修技巧,物联网(IoT)设备可以或许得以解析非构造化的多媒体数据,智能地响应用户和情况事宜,然则却伴跟着苛刻的机能和功耗请求。本文作者商量了两种方法以便精深度进修和低功耗的物联网设备成功整合。

近年来,越来越多的物联网产品涌如今市场上,它们采集四周的情况数据,并应用传统的机械进修技巧懂得这些数据。一个例子是Google的Nest恒温器,采取构造化的方法记录温度数据,并经由过程算法来控制用户的温度偏好和时光表。然而,其对于非构造化的多媒体数据,例如音频旌旗灯号和视觉图像则显得力所不及。

比拟大年夜头开端手动构建模型,我们须要一种更便利的方法来在物联网设备上供给深度进修才能。一个解决筹划是实现一个深度进修的模型编译器,可以将给定的模型经由优化,编译为目标平滔喔赡可履行代码。如图4中心的图所示,这种编译器的前端可以大年夜重要的深度进修平台(包含MXNet、Caffe、TensorFlow等)解析模型。然后,优化器可以履行额外的优化,包含模型修剪,量化和异构履行。优化后,由代码生成器生成目标平台上可履行代码,可所以ACL(用于ARM设备),TensorRT(用于Nvidia GPU)或其他ASIC设备。

新兴的物联网设备采取了加倍复杂的深度进修技巧,经由过程神经收集来摸索其所处情况。例如,Amazon Echo可以懂得人的语音指令,经由过程语音辨认,将音频旌旗灯号转换成单词串,然后应用这些单词来搜刮相干信息。比来,微软的Windows物联网团队宣布了一个基于面部识其余安然体系,应用到了深度进修技巧,当辨认到用户面部时可以或许主动解开门锁。

物联网设毕喔赡深度进修应用平日具有苛刻的及时性请求。例如,基于物体识其余安然摄像机为了能及时响应房屋内出现的陌生人,平日须要小于500毫秒的检测延迟来捕获和处理目标事宜。花费级的物联网设备平日采取云办事来供给某种智能,然而其所依附的优质互联网连接,仅仅在朝分范围内可用,并且往往须要较高的成本,这对设备可否知足及时性请求提出了挑衅。与之比拟,直接在物联网设备上实现深度进修或许是一个更好的选择,如许就可以免受连接质量的影响。

然而,直接在嵌入式设备上实现深度进修是艰苦的。事实上,低功耗是移动物联网设备的重要特点,而这通平平易近味着计算才能受限,内存容量较小。在软件方面,为了削减内存占用,应用法度榜样平日直接运行在懊悔上,或者在包含极少量第三方库的轻量级操作体系上。而与之相反,深度进修意味着高机能计算,并伴跟着高功耗。此外,现有的深度进修库平日须要调用很多第三方库,而这些库很难迁徙到物联网设备。

在深度进修义务中,最广泛应用的神经收集是卷积神经收集(CNNs),它可以或许将非构造化的图像数据转换成构造化的对象标签数据。一般来说,CNNs的工作流程如下:起首,卷积层扫描输入图像以生成特点向量;第二步,激活层肯定在图像推理过程中哪些特点向量应当被激活应用;第三步,应用池化层降低特点向量的大年夜小;最后,应用全连接层将池化层的所有输出和输出层相连。

将办事迁徙到云端

对于低功耗的物联网设备,问题在于是否存在一个靠得住的解决筹划,可以或许精深度进修安排在云端,同时知足功耗和机能的请求。为了答复这个问题,我们在一块Nvidia Jetson TX1设备上实现了基于CNN的物体推理,并将其机能、功耗与将这些办事迁徙到云端后的情况进行比较。

为了肯定将办事迁徙到云端后,是否可以降低功耗并知足对物体辨认义务的及时性请求,我们将图像发送到云端,然后等待云端将结不雅返回。研究注解,对于物体辨认义务,本地履行的功耗为7 W,而迁徙到云端后功耗降低为2W。这解释将办事迁徙到云端确切是降低功耗的有效门路。

我们应用ACL构建块构建了一个具有SqueezeNet架构的CNN推理机,其内存占用空间小,合适于嵌入式设备。SqueezeNet在保持类似的推理精度的同时,应用1×1卷积菏攀来削减3×3卷积层的输入大年夜小。然后,我们将SqueezeNet推理机的机能与Zuluko上的TensorFlow进行比较。为了确保比较的公平性,我们启用了TensorFlow中的ARM NEON向量计算优化,并在创建SqueezeNet引擎时应用了支撑NEON的构建块。确保两个引擎都应用了NEON向量计算,如许任何机能差别将仅由平台本身引起。如图2所示,平均来言,TensorFlow处理227×227像素的RGB图像须要420 ms,而SqueezeNet将处理雷同图像的时光缩短到320ms,加快了25%。

然而,迁徙到云端会导致至少2秒的延迟,甚至可能高达5秒,这不克不及知足我们500ms的及时性请求。此外,延迟的激烈颤抖使得办事异常弗成靠(作为比较,我们在美国和中国分别运行这些实验进行不雅察)。经由过程这些实验我们得出结论,在当前的收集情况下,将及时性深度进修义务迁徙到云端是一个尚未可行的解决筹划。

移植深度进修平台到嵌入式设备

比拟迁徙到云端的不切实际,一个选择是将现有的深度进修平台移植到物联网设备。为此,我们选择移植由Google开辟并开源的深度进修平台TesnsorFlow来建立具有物体推理才能的物联网设备Zuluko——PerceptIn的懊悔ARM片上体系。Zuluko由四个运行在1 GHz的ARM v7内核和512 MB RAM构成,峰值功耗约为3W。根据我们的研究,在基于ARM-Linux的片上体系上,TensorFlow可以或许供给最佳机能,这也是我们选择它的原因。


  推荐阅读

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

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


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

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

关键词: 探索发现

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

网友点评
自媒体专栏

评论

热度

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