AI复始,万象更新 ! 新智元祝广大订户鸡年大吉!
新智元启动新一轮大招聘:COO、执行总编、主编、高级编译、主笔、运营总监、客户经理、咨询总监、行政助理等 9 大岗位全面开放。 简历投递:j[email protected] HR 微信:13552313024 新智元为COO和执行总编提供最高超百万的年薪激励;为骨干员工提供最完整的培训体系、高于业界平均水平的工资和奖金。 加盟新智元,与人工智能业界领袖携手改变世界。 【新智元导读】谷歌官方博客最新发布TensorFlow Fold,通过为每个输入构建单独的计算图解决由于输入的大小和结构不同导致的问题。此外,通过动态批处理,实现了在 CPU上增速10倍以上,在GPU上增速100倍。同时发布的论文详解了该新功能的技术细节,论文地址:https://openreview.net/pdf?id=ryrGawqex 大多数机器学习中,用于训练和推理的数据需要经过预处理步骤,其中大量的输入(例如图像)被缩放到相同的尺寸,然后分批存储。这样,高性能深度学习库如 TensorFlow 等就可以并行地运行批存储中所有输入的相同计算图(computation graph)。批处理利用现代 GPU 和多核 CPU 的单指令多数据流(SIMD)性能来加快执行速度。然而,由于输入数据的大小和结构不同,例如自然语言理解中的分析树(parse trees),源代码中的抽象语法树(abstract syntax tree),网页的 DOM 树(DOM trees)等,这个过程存在许多问题。在这种情况下,计算图不同的输入不能直接地一起进行批处理,这导致处理器,存储器和缓存使用率不佳。 谷歌今天发布的 TensorFlow Fold 旨在解决这些挑战。TensorFlow Fold 使得处理不同数据大小和结构的深度学习模型更容易实现。此外,TensorFlow Fold 带来的好处是对这些模型进行批处理,与其他可替代的实现相比,在 CPU 上的速度提高了10倍以上,在 GPU 上的速度提高 100 倍。这是通过动态批处理(dynamic batching)实现的,具体请参阅我们的论文:Deep Learning with Dynamic Computation Graphs.
上面的动图显示了使用动态批处理运行的递归神经网络。相同颜色的操作被分为批,使得 TensorFlow 能够更快地运行它们。Embed 操作将词(words)转变为向量表示(vector representations)。完全连接(FC)操作将词向量(word vectors)组合形成短语向量表示。网络的输出是一个完整句子的向量表示。尽管上图只显示了句子的一个分析树(parse tree),但相同一个网络可以在任意形状或大小的多个分析树上运行及进行批处理操作。 TensorFlow Fold 库首先为每个输入构建成单独的计算图(computation graph)。因为每个输入可能具有不同的大小和结构,所以计算图也可能如此。动态批处理随后自动地组合这些流图,开奖,以利用机会在输入内和输入间进行批处理,并插入附加指令以在批处理操作之间移动数据。(具体技术细节请参阅论文) 我们希望 TensorFlow Fold 对在 TensorFlow 中使用动态计算图实现神经网络的研究人员和从业者有所帮助。了解更多:https://github.com/tensorflow/fold 论文:Deep Learning with Dynamic Computation Graphs
论文摘要: 在自然语言处理(分析树),化学信息学(分子图)等多个领域中,在图结构上进行计算的神经网络适合解决许多问题。然而,由于对每个输入,计算题具有不同的形状和大小,这样的网络不能直接支持批训练或推理。它们也难以在流行的深度学习库中实现,因为这些苦一般是基于静态数据流图的。我们提出一种称为动态批处理(Dynamic Batching)的技术,该技术不仅能在不同形状的输入图之间进行批处理,而且在同一输入图的不同节点之间也能批处理。该技术使得我们能够创建静态图,使用流行的库来模拟任意形状和大小的动态计算图。我们进一步提出了一个组成区块的高级库,以简化动态图模型的创建过程。使用这个库,我们证明了前人文献中的多种模型的简洁、并行的批处理实现。 原文地址:https://research.googleblog.com/2017/02/announcing-tensorflow-fold-deep.html 【寻找AI独角兽】新智元联手10大资本 启动2017创业大赛 (责任编辑:本港台直播) |