《TensorFlow自然语言处理》—2.1.3 TensorFlow架构:当你执行客户端时发生了什么

网友投稿 599 2022-05-30

2.1.3 TensorFlow架构:当你执行客户端时发生了什么

我们知道TensorFlow非常善于创建一个包含所有依赖关系和操作的计算图,它可以确切地知道数据是如何及什么时候在哪里流转。但是,应该有一个元素可以有效执行定义好的计算图,使TensorFlow变得更好,这个元素就是会话。现在让我们来看看会话的内部,了解图的执行方式。

首先,TensorFlow客户端包含图和会话。创建会话时,它会将计算图作为tf.GraphDef协议缓冲区发送到分布式主服务器,tf.GraphDef是图的标准化表示。分布式主服务器查看图中的所有计算,并将计算切割后分配给不同的设备(例如,不同的GPU和CPU)。我们的sigmoid示例中的图如图2.1所示,图的单个元素称为节点。

《TensorFlow自然语言处理》—2.1.3 TensorFlow架构:当你执行客户端时发生了什么

接下来,计算图将由分布式主服务器分解为子图,并进一步分解为更小的任务。虽然在我们的例子中分解计算图似乎很微不足道,但在实际应用中,有多层隐藏层的神经网络解决方案的计算图可能是指数级增长的。此外,将计算图分解为多个部分来并行执行(例如,多个设备)变得越来越重要。执行图(或由这个图划分的子图)称为单个任务,任务会分配给单个TensorFlow服务器。

但是,实际上,每个任务都会分解为两个部分来执行,其中每个部分由一个worker执行:

一个worker使用参数的当前值执行TensorFlow操作(称为操作执行器)

另一个worker存储参数并在执行操作后更新它们的值(称为参数服务器)

TensorFlow客户端的常规工作流程如图2.2所示。

图2.2 TensorFlow客户端的执行过程

图2.3展示了图的分解过程。除了将图分解以外,TensorFlow还插入发送和接收节点,以帮助参数服务器和操作执行器相互通信。你可以把发送节点理解为一旦数据可用时发送数据,而接受节点在相应的发送节点发送数据时侦听和捕获数据。

最后,一旦计算完成,会话就会将更新的数据从参数服务器带回客户端。TensorFlow的体系结构如图2.4所示,这一解释基于https://www.tensorf?low.org/extend/architecture上的官方TensorFlow文档。

图2.3 TensorFlow图分解过程

图2.4 TensorFlow的体系结构

TensorFlow 自然语言处理基础

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:DevCloud新手课堂 之 三步修改代码检查问题
下一篇:Python进阶(三十三)-Python获取并输出当前日期时间
相关文章