本帖最后由 面壁深功 于 2017-9-19 08:21 编辑
有预测说,从现在到2020年,人类社会将会有500亿个设备联网,这意味着我们会有更多的数据需要处理,会有更大的流量进入云中,30年后我们脚上的鞋的智能程度可能会比我们的大脑还要高。 今天IoT的部署带来了很多问题,诸如带宽、时延、可靠性和安全性。基于云的模型很难解决这些问题,那么我们如何才能从云中分流,带来更多实时性,带来与“人的智能”同级别的设备? Movidius™神经计算棒的诞生,就是为了解决这个问题。 在2017年9月4日的Movidius™神经计算棒闭门研讨会上,英特尔官方为大家详细介绍了这款产品,以下为演讲实录精华版。 一、Movidius™神经计算棒是什么? Movidius™神经计算棒是世界上首个基于USB模式的深度学习推理工具和独立的人工智能加速器,可以用它来做样机、调试并且验证、部署AI网络。基于低功耗及USB接口,它可以很轻松地被应用到各个行业,对于开发者来说使用也很方便,出差时可以直接放进你的上衣口袋。 当下热门的人工智能设备,如安全摄像头、VR、无人机、智能家居等等,都需要实时的图象处理、机器视觉和人工智能,并且需要在很低的功率之下运行。而Movidius™神经计算棒内置的Myriad 2 VPU提供了强大且高效的性能,以便在设备上直接运行实时深度神经网络(DNN),这使得各种人工智能应用都能离线部署,这也是英特尔丰富的软件和硬件解决方案的一部分,是解决AI数据洪流所带来的挑战的利器。 二、Movidius™神经计算棒有哪些特性? Movidius™神经计算棒的特性包括:可以支持深度神经网络,可以做样机调试和部署。它也可以把深度神经网络部署在设备上运行,换句话说你可以在不联网、不用云的前提下,实时执行推理或者物体鉴别、图像鉴别,或者是每帧视频的鉴别,甚至可以在同一个平台上使用多个神经计算棒,让你的应用在神经计算棒上实现,达到扩展性。所有这些都是通过USB实现,不需要任何外部的支持。 三、Movidius™神经计算棒兼容性如何? Movidius™神经计算棒目前可以支持Ubuntu 16.04操作系统,但是它并不仅仅是一个硬件设备,作为一个良好的开发工具,要有很好的软件支持,英特尔也为此做出了诸多努力,提供了一系列包括API在内的开发者工具包进行支持。 那么,英特尔为开发者们提供了哪些开发者工具?听听Ashwin Vijayakumar先生怎么说:英特尔新技术事业部应用架构师 Ashwin Vijayakumar先生。 四、Movidius™神经计算棒如何运行? 以前面提到的“猫机大战”为例,想要解决这个问题,需要两个部分:第一是训练,第二是推理。 如果要进行训练,你需要构建一个深度的神经网络模型,让机器可以鉴别出这是一只猫还是一只狗,还是地面的一个污迹。当构建好这个模型之后,就需要将其部署在一个低功耗的设备上,对实际的场景进行识别,这就是推理。于是,你把模型交给机器,机器会实时收到信息,并使用刚才提到的模型,把猫和需要清扫的垃圾区分开来,这就是NCS(即神经计算棒)的工作,而SDK会帮助开发者完成这样的工作。 英特尔有不同解决方案来做模型训练,你可以选择使用FPGA、英特尔至强系列处理器来训练你的网络,完成训练之后,就可以得到模型。通过调用SDK中的接口,可以方便的在主机(NCS所连接的计算机)与NCS之间通信。NCS利用训练好的网络模型计算出图像分析的结果,并传输到主机上,完成推理工作。 开发者是否要完成所有设置工作?当然不用。 英特尔打造了模块化设计,开发者选择使用SDK的一小部分即可。 如果你是一个网络架构师或者数字科学家,主要目标就是打造一个非常好的、经过完整优化的网络来满足一个特定应用的需求,这时有两个工具可以为你提供很好的帮助: 首先是Profiler,它可以把你的模型进行提取,告诉你网络中的每一层的执行,哪一层可以在NCS上进行,它会给你非常详细的信息,包括带宽,还有你的执行类型。如果说对这些层的性能在NCS上并不满意,还可以进行一个回归,回归到之前的网络上,然后再反向执行,在Profiler再一次执行,直到你对网络性能满意为止,并且完成了最后的优化。 当你的网络架构已经完成,准备进入到下一阶段时,Checker工具可以让你尽可能接近于终端应用,比如说一张猫咪的照片放在NCS上,看它具体的性能表现怎么样。 作为网络架构师,你的工作就已经完成了,然后把后续工作交给你的同事。这时,一名应用工程师就要依赖于已经设定好的网络,设计完的网络集成到应用环境中,比如设计一个可以更好地规划路线的智能吸尘器。 这时也有两个工具可以帮上忙:第一个就是Compiler——使用者必须对之前完成的网络架构文件进行转码。在使用Compiler时,你给它一个输入,然后它就会有一个输出,整个过程自动完成。 图像文件必须加载到NCS当中,这时API框架就会发生作用——用户可以把图像文件加载到NCS上,这个操作在整个开发过程中只需要做一次就可以完成。系统重启之后,继续把图像文件上传到NCS中。在接下来的推理过程中,只需要抓取一个图像放到NCS上,NCS就可以进行推理,有了这个文件,NCS就可以捕捉其他图像帧,然后加以分析。以上所有工作都会在后台完成,而CPU可以什么都不做,NCS则会识别图像,会告诉你图像上是猫是狗还是其他什么,它会给不同的可能性并进行权重的加权,然后你判断这个答案的对错,或是对它重新解读。 英特尔提供的API框架十分丰富,支持C语言、Python等。 除此之外,产品现在已经支持了卷积神经网络,但是必须在Caffe上进行训练,不过马上就可以支持其他框架了。为了帮助大家快速完成部署,并且启动设计,在开发阶段英特尔还把那些预训练的网络集成到了NCS当中,如GoogleNet、Alexnet、SqueezeNet,还有CaffeNet。 当然,上述的网络仅仅是一小部分,之前谈到的Profiler,可以帮助你训练自己的网络,但是有一点一定要确保,它必须要与所支持的计算层相匹配。
|