炼数成金 门户 商业智能 芯片 查看内容

看Poplar+IPU如何进行智能图像计算

2017-3-6 10:24| 发布者: 炼数成金_小数| 查看: 9859| 评论: 0|原作者: BaymaxZ|来自: 机器人圈

摘要: 了解人工智能领域的人都知道,图像处理单元(GPU)常被用来运行机器学习程序。而GPU比较适合运行完整的程序,而Graphcore这家创业公司力争要在芯片领域与英特尔和英伟达开始竞争。而他们提出的概念不是CPU,也不是GP ...

网络 模型 机器学习 框架 GPU

了解人工智能领域的人都知道,图像处理单元(GPU)常被用来运行机器学习程序。而GPU比较适合运行完整的程序,而Graphcore这家创业公司力争要在芯片领域与英特尔和英伟达开始竞争。而他们提出的概念不是CPU,也不是GPU,而是IPU——智能处理单元。

所有的机器学习框架的有一个共同点,不管是TensorFlow、MxNet、Caffe、Theano、Torch还是其他的框架,他们均使用计算图像的概念来实现提取过程。图像正是描述在机器学习系统中创建的模型的较好方法。这些计算图像由用于描述顶点之间的通信路径的“边”(突触)以及连接的计算单元的“顶点”(神经元)组成。

与标量的CPU或矢量的GPU不同,Graphcore智能处理单元(IPU)是一个图像处理器。这家英国公司已经于2016年获得了3000万美元的投资,投资者包括博世、三星等巨头。

著名科技媒体wired曾撰写文章,介绍了Graphcore专为机器学习应用程序设计的Poplar软件框架,是如何创建了机器学习的“计算图”的。

AlexNet数据集训练的深度学习图像

该文介绍了Graphcore的软件框架Poplar,并概述了AlexNet图像的结构。随后,为了更好地使大家理解,该公司的科研人员又在博客中详述了该机器学习模型的工作原理。

wired文章中看到的图像,是从部署在IPU上的机器学习模型Poplar的内部图像处理框架中生成的。Poplar本身由两个关键组成部分组成:图像编译器(Graph Compiler)+图像引擎(Graph Engine)

在Poplar中,图像允许你自己定义计算的过程,其中顶点数代表操作,边数描述这些操作之间的通信。例如,如果要对2个数字求和,可以定义一个顶点,它具有2个数的输入(要相加的数字),一些计算(2个数字相加的函数)和一个输出(结果)。通常,顶点操作要复杂得多,由很多小程序(通常称其为codelets)来定义。而图像提取则非常具有吸引力,因为它不对计算结构做出假设,它将计算分解成组件块,并行处理器(例如IPU)可以利用这些组件块获得高性能。

Poplar使用这种简便的图像提取来构建出这些超大的图像。图像的程序化成像意味着我们可以根据所需的特定计算进行调整,以确保研究人员可以最有效地使用IPU资源。

这也使得科研人员可以在Poplar中实现对库的构建,并提供了常见的外部接口。就拿上面的加法器那个简单的例子而言,我们可以写一个用于添加数字的库函数。如果我们将Poplar中不同大小的输入可视化的话,看起来就像下面这张图。注意,只有一个顶点类型可以重复使用,但顶点之间的连接可以形成更复杂的计算。

Poplar图像编译器使得科研人员能够有效地将这些图像编译到IPU图像处理器中。Graphcore利用它构建图像库,特别是神经网络库(POPNN)。POPNN包含了针对各种图元的高度优化的顶点类型集合,包括诸如卷积,池化和全连接层等基元,他们可以被组合成各种复杂的机器学习模型。下图是在MNIST上训练的全连接网络。

MNIST是一个非常简单的计算机视觉数据集,在机器学习领域中,就类似于编程里的“hello world”那么简单。用于学习此数据集的简单网络,有助于理解那些图像。通过将图像库与TensorFlow等框架集成,在机器学习应用中,Graphcore采用能够充分利用IPU性能的最简单的方式。

一旦使用图像编译器构建了一个机器学习模型的图像,就需要去执行它,此功能由Poplar 图像引擎提供。下图展示的是向前推理通过Resnet的50层网络。

ResNet是微软开发的神经网络,该神经网络在2015ImageNet上获得了分类竞赛冠军,该网络通过Graphcore神经网络图像库训练之后用于分类图像。图像处理器,比如IPU,定义这些节段仅需一次,然后就可重复地调用它们。例如,conv4层集群总共执行六次,但只存在于图中一次;每次调用使用具有不同网络权重数据的相同代码。在图中,我们可以看到大量的重用。图像还证明了卷积层的形状多样性,如上所述,每个都具备一个图像,以配合自然形状的计算。

图像引擎使用由图像编译器构建的图来创建并管理机器学习模型的执行。一旦被部署,图像引擎便可提供用于调试和分析的工具,同时,它还能监视并响应应用程序中使用的IPU设备或设备。

ResNet-50的计算图形的图像展示的是整个模型。这个大小级别,我们很难看出来单个顶点之间的连接,所以需要把图像放大。

IPU专门用于构建和执行所有不同类型的机器智能模型的计算图像。IPU系统比CPU和GPU处理器训练模型更快速,因为这些处理器不是为人工智能的工作负载而专门设计的。

相同的IPU硬件也可以用于部署用于推理或预测的优化模型。但最重要的是,理论上,Poplar与IPU的组合,比当今流行的深度学习算法应用更广泛,它很有可能会引领未来机器学习的创新浪潮。

欢迎加入本站公开兴趣群
商业智能与数据分析群
兴趣范围包括各种让数据产生价值的办法,实际应用案例分享与讨论,分析工具,ETL工具,数据仓库,数据挖掘工具,报表系统等全方位知识
QQ群:81035754

鲜花

握手

雷人

路过

鸡蛋

相关阅读

最新评论

热门频道

  • 大数据
  • 商业智能
  • 量化投资
  • 科学探索
  • 创业

即将开课

 

GMT+8, 2018-6-26 02:00 , Processed in 0.161597 second(s), 25 queries .