分布式深度学习three

对tensorflow的dataflow进行了了解,节点:代表各类操作(operation),具体包括数学运算、数据填充、结果输出和变量读写等。有向边:描述节点间的输入、输出关系,而张量(Tensor)则在边上流动。Tensoflow中的数据流图是有向图,不能连成为环。

Tensorflow实现的dataflow的过程是:

Client设定计算图,通过session发送给master。Master对图进行执行的过程。这个设计用dataflow替代了具体执行指令,当有新的想法时,可以高效的完成。不必修改大量的底层代码。

其中涉及到的有节点置放方法,对这块理解是根据数据流图使用贪心算法选择节点需要执行的设备。这个过程涉及代价估计。这个过程是全自动完成的。不用指定设备地址,对用户很友好。

当节点置放好后,会将图分为几个小的子图的集合。设置了send和receive两种机制。这两种机制能够实现子图之间通信。

对于分布式机制:需要一个控制流进行调度,该过程发生在在图的划分中,自动地增加控制节点到每个子图上。这些节点实现了一个小的状态机,来管理每次迭代的开始和终止,确定整个循环的终止。

Tensorflow这个流程,设计了一个checkpoint操作,有点类似中断的过程。可以恢复计算图出现的错误。

思考:Tensorflow中dataflow方法用的很巧,在分布式中,如何能将数据流图进一步优化,会成为一种分布式提速的一种方式。

猜你喜欢

转载自blog.csdn.net/zhuiyunzhugang/article/details/106450795