通过深度学习技术,物联网(IoT)设备可以解析非结构化的多媒体数据并智能地响应用户和环境事件,但对性能和功耗的要求却很高。本文的作者探索了成功集成深度学习和低功耗IoT设备的两种方法。近年来,市场上出现了越来越多的物联网产品。他们收集周围的环境数据,并使用传统的机器学习技术来理解这些数据。 Google的Nest恒温器就是一个例子,它使用结构化的方法来记录温度数据,并使用算法来掌握用户的温度偏好和时间表。但是,对于非结构化的多媒体数据(例如音频信号和可视图像),它是无能为力的。新兴的物联网设备使用更复杂的深度学习技术来通过神经网络探索其环境。例如,Amazon Echo可以理解人类的语音命令,使用语音识别将音频信号转换为字串,然后使用这些字词搜索相关信息。最近,微软的Windows物联网团队发布了一个基于面部识别的安全系统,该系统使用深度学习技术在识别到用户的面部时自动将门解锁。物联网设备上的深度学习应用程序通常对实时性有苛刻的要求。例如,为了使基于对象识别的安全摄像机及时响应房屋中的陌生人,通常需要小于500毫秒的检测延迟才能捕获和处理目标事件。消费级物联网设备通常使用云服务来提供某种智能。但是,它们所依赖的高质量Internet连接仅在一部分范围内可用,并且通常需要更高的成本。这就提出了设备是否可以满足实时要求的问题。挑战。相比之下,直接在物联网设备上实施深度学习以避免连接质量的影响可能是一个更好的选择。但是,很难直接在嵌入式设备上实施深度学习。实际上,低功耗是移动物联网设备的主要特征,这通常意味着有限的计算能力和较小的内存容量。在软件方面,为了减少内存使用,应用程序通常直接在裸机上运行,或者在包含少量第三方库的轻量级操作系统上运行。相反,深度学习意味着高性能计算,并伴随着高功耗。此外,现有的深度学习库通常需要调用许多第三方库,并且这些库很难迁移到IoT设备。在深度学习任务中,使用最广泛的神经网络是卷积神经网络(CNN),可以将非结构化图像数据转换为结构化对象标签数据。一般来说,CNN的工作流程如下:首先,卷积层扫描输入图像以生成特征向量;第二步,激活层确定在图像推断期间应激活哪些特征矢量;第三步是使用池化。该层减小了特征向量的大小;最后,使用完全连接层将池化层的所有输出连接到输出层。在本文中,我们将讨论如何使用CNN推理引擎在IoT设备上实施深度学习。将服务迁移到云对于低功耗IoT设备,问题在于是否存在一种可靠的解决方案,可以在满足功率和性能要求的同时在云中部署深度学习。为了回答这个问题,我们在Nvidia Jetson TX1设备上实现了基于CNN的对象推断,并在将这些服务迁移到云后将其性能和功耗与情况进行了比较。为了确定将服务迁移到云是否可以减少功耗并满足对象识别任务的实时要求,我们将图像发送到云,然后等待云返回结果。研究表明,对于对象识别任务,本地执行的功耗为7 W,迁移到云后,功耗降低为2W。这表明将服务迁移到云确实是降低功耗的有效方法。但是,迁移到云将导致至少2秒的延迟,甚至可能长达5秒,这不能满足我们的500ms实时要求。此外,严重的延迟抖动使服务非常不可靠(为进行比较,我们在美国和中国进行了这些实验以进行观察)。通过这些实验,我们得出结论,在当前的网络环境中,将实时深度学习任务迁移到云是不可行的解决方案。迁移深层