:我困惑的两个概念In-graph replication和Between-graph replication读取时复制训练中tensorflow的官方操作方法.
在上面的链接中说
图形内复制.在这种方法中,客户端构建一个包含一组参数的tf.Graph(在tf.Variable节点固定到/ job:ps); ...
这是否意味着有多个 tf.Graph S IN Between-graph
replication的方法吗?如果是,所提供示例中的相应代码在哪里?
虽然Between-graph replication在上面的链接中已经有一个例子,但是任何人都可以提供一个In-graph replication
实现(伪代码很好)并突出其主要区别Between-graph replication吗?
提前致谢!
非常感谢您的详细解释和主旨代码@mrry @YaroslavBulatov!在查看您的回复后,我有以下两个问题:
复制培训中有以下声明:
图之间的复制.在这种方法中,每个/ job:worker任务都有一个单独的客户端,通常与worker任务在同一个进程中.每个客户端构建一个包含参数的类似图形(固定到/ job:ps,如前所述,使用tf.train.replica_device_setter()将它们确定性地映射到相同的任务); 以及模型的计算密集型部分的单个副本,固定到/ job:worker中的本地任务.
我有两个与上面的单词粗体相关的子问题.
(A)为什么我们说每个客户端构建相似的图形,但不是相同的图形?我想知道复制培训示例中每个客户端中构建的图形
应该是相同的,因为下面的图形构造代码在所有workers 中共享:
# Build model...
loss = ...
global_step = tf.Variable(0)
(B)不应该是模型的计算密集型部分的多个副本,因为我们有多个workers?
复制培训中的示例是否支持多台计算机上的培训,每台计算机都有多个GPU?如果没有,我们是否可以同时使用In-graph replication每台机器上的多GPU支持培训和Between-graph …