爱吧机器人网 » 技术 > 机器学习 > 正文

谷歌发布深度学习库TensorFlow Fold,支持动态计算图

选自Google Research
作者:Moshe Looks、Marcello Herreshoff、DeLesley Hutchins
机器之心编译
参与:李亚洲、朱思颖
 
   在大部分的机器学习过程中,用于训练 (training) 和推理 (inference) 的数据都需要进行数据的预处理,通过预处理将不同的输入数据(例如图像)规整至相同尺寸并进行批(batch)存储。这一步使高性能的深度学习库,例如 TensorFlow,可以并行的处理批存储中的所有输入,且以相同的计算图(computation graph)进行处理。批处理(Batching)利用现代 GPU 和多核 CPU 的单指令流多数据流(SIMD)性能来加速运算执行。但是,当输入数据的尺寸和结构变化时会产生诸多问题,例如在自然语言理解中的解析树(parse tree)、源代码中的抽象语法树(abstract syntax tree)、网页的文档树(DOM tree)等。在这些情况下,不同的输入数据需要不同的计算图,通常这些计算图不能够批存储在一起,导致处理器、存储器以及缓存利用率低。
 
    今天我们发布 TensorFlow Fold 来解决这些困难。TensorFlow Fold 使得处理不同数据尺寸和结构的深度学习模型更容易实现。不仅如此,TensorFlow Fold 将批处理的优势赋予这些模型,使得这些模型在 CPU 上的运行速度有超过 10 倍的提升,在 GPU 上的运行有超过 100 倍的提升(相比于其他实现方式)。这一提升来源于动态批存储(dynamic batching)技术,在我们的论文中有详细介绍(Deep Learning with Dynamic Computation Graphs)。

\
 
    以上动图演示了动态批处理运行的递归神经网络。带有同样的颜色的运算聚成一批,这使得 TensorFlow 能够更快的运行它们。Embed 运算将单词转换为向量表征。完全连接(fully connected,FC)运算结合词向量,从而形成段落向量表征。网络的输出是一个完整语句的向量表征。尽管上图只演示了一个语句解析树,但在多种任意形状与大小的解析树上,这个网络同样也能运行并实现批处理运算。
 
    TensorFlow Fold 库首先会为每个输入建立一个独立的计算图。
 
    因为单独的输入可能有不同的大小和结构,计算图也可能是这样。动态批处理自动结合这些图,从而获取在输入内以及整个输入进行批处理机会的优势,并且插入额外的指令在批处理操作之间移动数据。(查看技术细节请参考论文)
 
    想要了解更多,也可以查看我们的 github 网址:https://github.com/tensorflow/fold。我们希望 TensorFlow Fold 能够帮助研究人员与从业者在 TensorFlow 中部署动态计算的神经网络。
 
    论文:DEEP LEARNING WITH DYNAMIC COMPUTATION GRAPHS
    摘要:在包括自然语言处理(解析树)与化学信息学(分子图)在内的多个领域中,在图结构上进行计算的神经网络是解决问题的天然方式。然而,因为每个输入的计算图有不同的形状与大小,所以网络通常不能直接进行批训练或推断。它们也难以部署到流行的深度学习库中,因为这些库是基于静态数据流图的。我们引入了一种称之为动态批处理(Dynamic Batching) 的技术,它不仅能批处理不同输入图(形状也不类似)之间的运算,也能批处理单个输入图内的不同节点。该技术使得我们能够创造静态图、使用流行的库、模仿任意形状与大小的动态计算图。我们进一步展现了组成区块的高层次库,从而简化了创造动态图模型的过程。使用这一库,我们论证了文献中多种模型的简洁且明智的批处理并行实现。


上一篇:机器学习和人工智能有什么区别?
下一篇:无监督学习、GAN和强化学习将构建机器学习的未来
精选推荐
美国人工智能公司Skymind进入福建全面开展业务
美国人工智能公司Skymind进入福建全面开展业务

[2017-12-11]  人工智能在当今这个时代对大家来说想必是非常熟悉的,这也是我国近十几年来一直追求的目标,未来的时间里这也将是全人类追求的目标。就目前来看,近年来,人工智能或在我国迎......

Crossbar将电阻式RAM推入嵌入式AI
Crossbar将电阻式RAM推入嵌入式AI

[2018-05-17]  电阻RAM技术开发商Crossbar表示,它已与航空航天芯片制造商Microsemi达成协议,允许后者在未来的芯片中嵌入Crossbar的非易失性存储器。此举是在先进制造业节点的领先代工厂选......

哈佛大学《自然》发表新驱动技术,让飞行机器人悬停且不受损伤
哈佛大学《自然》发表新驱动技术,让飞行机器人悬停且不受损伤

[2019-11-06]  哈佛大学研究人员发表在《自然》杂志上的一项最新研究,他们开发了一种由柔软的人造肌肉驱动的机器人蜜蜂(RoboBee),这种机器人在撞墙、 ...

什么是机器人学?机器人学简介
什么是机器人学?机器人学简介

[2017-12-14]  机器人学是工程学与科学的交叉学科,包括机械工程,电气工程,计算机科学等。机器人技术涉及机器人的设计、制造、操作和应用,以及用于控制、感官反馈和信息处理的计算机系统。...

智能机器人困惑的时候知道该问什么问题
智能机器人困惑的时候知道该问什么问题

[2017-03-20]   照片:Nick Dentamaro 布朗大学 上周,我们提到了麻省理工学院的一些研究,即通过链接人的大脑来帮助机器人在他们将要犯错误的时 ...

一个让深度学习惨败的通用人工智能领域——语境处理
一个让深度学习惨败的通用人工智能领域——语境处理

[2019-11-04]  Context是指用来解释一段给定文本或语句的来源框架,我们可以翻译为上下文或语境。维基百科将context定义为:*在符号学、语言学、社会学和 ...

17世纪的莱布尼茨试图制造“思想机器”却被现实打脸
17世纪的莱布尼茨试图制造“思想机器”却被现实打脸

[2019-11-05]  莱布尼茨,德国哲学家、数学家、律师,历史上少见的通才1666年,德国博学家戈特弗里德·威廉·莱布尼茨(Gottfried Wilhelm Leibniz)发 ...

Waymo:人性和行为心理学才是无人驾驶最大的挑战
Waymo:人性和行为心理学才是无人驾驶最大的挑战

[2019-11-03]  自动驾驶汽车作为AI领域内最大的挑战之一,谷歌致力于其研发已有十余载,现在他们逐渐意识到,最困难的是如何让人们享受驾驶的乐趣。这是一 ...

本周栏目热点

深度学习反向传播算法(BP)原理推导及代码实现

[2017-12-19]  分析了手写字数据集分类的原理,利用神经网络模型,编写了SGD算法的代码,分多个epochs,每个 epoch 又对 mini_batch 样本做多次迭代计算。这其中,非常重要的一个步骤,......

如何在机器学习项目中使用统计方法的示例

[2018-07-23]  事实上,机器学习预测建模项目必须通过统计学方法才能有效的进行。在本文中,我们将通过实例介绍一些在预测建模问题中起关键作用的统计学方法。...

[2017-08-28]  模拟退火(Simulated Annealing,简称SA)是一种通用概率算法,用来在一个大的搜寻空间内找寻命题的最优解。1、固体退火原理:将固体加温 ...

Machine Learning-感知器分类算法详解

[2018-05-31]  今天我们来讲解的内容是感知器分类算法,本文的结构如下:什么是感知器分类算法,在Python中实现感知器学习算法,在iris(鸢尾花)数据集上训练一个感知器模型,自适应线性神......

机器人是怎么深度学习的?

[2016-03-29]      一个人独处时,感觉有点孤单,怎么办?微软亚洲研究院推出的微软小冰,或许 ...