我想在具有多个 ps 和工作线程的多 GPU 集群中试验 TensorFlow 的图内复制。这CIFAR-10 多 GPU 示例图中显示了单台机器上的同步复制。有没有可用的示例可供我参考,例如图间训练的示例训练程序?
一般来说,对于分布式训练,我们更喜欢图间复制而不是图内复制,因为图间复制比图内复制(当前的实现)更具可扩展性。图内复制的主要问题是,它目前要求您为网络构建图结构的多个副本,并将它们具体化在单个位置(即分布式主节点)。当你有数百个副本时,这会将主服务器变成瓶颈;相比之下,在图间复制中,每个副本仅具有本地运行的图的副本。
图间复制的缺点是它使同步训练变得更加困难,因为您现在需要同步多个训练循环,而不是具有单个训练操作的单个循环。这tf.train.SyncReplicasOptimizer
用在分布式 Inception 训练器提供了一种通过图间复制进行同步训练的方法。
但是,如果您想尝试图内复制,您可以通过修改来完成为每个塔分配设备的线路在 CIFAR-10 示例中。您可以将塔分配给不同的 GPU,而不是在同一进程中将塔分配给不同的 GPU。不同的工人任务。例如:
worker_devices = ["/job:worker/task:0/gpu:0", ..., "/job:worker/task:7/gpu:0"]
for worker_device in worker_devices:
with tf.device(worker_device):
# Execute code for building the model replica.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)