如何利用微信进行企业网站推广,宣传软文推广,文昌建设局网站,asp网站 会员注册1 概述TensorFlow架构设计精巧#xff0c;在后端运行时这一层#xff0c;除了提供本地运行时外#xff0c;还提供了分布式运行时。通过分布式训练#xff0c;在多台机器上并行执行#xff0c;大大提高了训练速度。前端用户通过session.run()启动系统执行时#xff0c;tar…1 概述TensorFlow架构设计精巧在后端运行时这一层除了提供本地运行时外还提供了分布式运行时。通过分布式训练在多台机器上并行执行大大提高了训练速度。前端用户通过session.run()启动系统执行时target默认为空字符串对应的是本地运行模式。若target以grpc://开头则对应的是分布式运行模式target指定了要连接的TensorFlow执行引擎。分布式运行时同样分为client master和worker只是三者不在同一进程内。分布式运行时同样是围绕计算图Graph来进行的流程也与本地运行时几乎相同。client负责图的构造并传递给master。master接收后启动图的剪枝和分裂将分裂后的子图发送给多个worker进程。worker进程负责执行计算子图它会先按照自己所在机器包含的设备先按照设备进行子图的二次分裂然后在每个设备上进行子图执行。所有设备执行完毕后从计算图的终止节点sink中取出数据。本地运行时通过DirectSession同时管理client master和worker而分布式运行时则不同。client对应GrpcSessionmaster对应MasterSessionworker对应WorkerSession。三者使用同一个句柄session_handle进行协同工作。 2 数据交换和本地运行时类似分布式运行时也存在跨设备的数据依赖。对于跨设备的数据边将其分裂在发送方插入send节点接收方插入recv节点。如果二者跨进程通信比如两台不同的服务器则通过GrpcRemoteRendezvous进行数据交换。如果二者是进程内通信比如同一台服务器的CPU0和CPU1则通过IntraProcessRendezvous进行数据交换。上节讲过的本地运行时在运行前就创建了一个IntraProcessRendezvous对象。 3 分布式集群结构TensorFlow为分布式运行时设计了一个精巧的结构。共分为三级。集群cluster可包含多台服务器通过ClusterSpec对象描述。它包含多个job一个job又包含多个Task。一个Task对应一个server。Job。将目的相同的Task划归为一个job使用job_id唯一标示。一般存在两种job。ps将数据发送给worker待worker运算完毕后再返回给psps再进行数据更新。- ps数据存储负责存储和更新模型的参数比如w和b。比较适合CPU- worker数据计算负责train和inference时的数据计算工作。比较适合GPUTask。Task是提供服务的最小单位它一般单独在一个进程内通过job_id:task_index唯一标示。一个Task对应一个server提供MasterService和WorkerService两种服务。下面是一个集群配置的例子。tf.train.ClusterSpec({worker: [worker0:1111, # /job:worker/task:0worker1:2222, # /job:worker/task:1worker2:3333 # /job:worker/task:2],ps: [ps0:1111, # /job:ps/task:0ps1:2222 # /job:ps/task:1
]})
这个集群cluster内包含2个job一个ps和一个worker。ps又包含2个taskworker则包含3个task共计5个task。系列文章欢迎阅读谢杨易Tensorflow源码解析1 -- 内核架构和源码结构zhuanlan.zhihu.com谢杨易Tensorflow源码解析2 -- 前后端连接的桥梁 - Sessionzhuanlan.zhihu.com谢杨易Tensorflow源码解析3 -- TensorFlow核心对象 - Graphzhuanlan.zhihu.com谢杨易Tensorflow源码解析4 -- 图的节点 - Operationzhuanlan.zhihu.com谢杨易Tensorflow源码解析5 -- 图的边 - Tensorzhuanlan.zhihu.com谢杨易Tensorflow源码解析6 -- TensorFlow本地运行时zhuanlan.zhihu.com谢杨易Tensorflow源码解析7 -- TensorFlow分布式运行时zhuanlan.zhihu.com