本文为您介绍如何使用分布式训练框架StarServer进行分布式训练。

StarServer不仅将原生TensorFlow中的Send/Recv语义修改为Pull/Push语义,而且实现了图执行过程中的Lock-Free,大幅度提高了并发执行子图效率。PAI-TF支持更大的训练规模和训练性能,针对典型业务场景,其训练性能比原生TensorFlow提升了数倍。其中,最大测试规模为3000 Worker时,PAI-TF达到近似线性扩展性。

开启StarServer分布式训练

使用StarServer进行分布式训练,需要在tf.train.Server中添加protocol="star_server"
cluster = tf.train.ClusterSpec({"ps": ps_hosts, "worker": worker_hosts})

server = tf.train.Server(cluster,
                         job_name=FLAGS.job_name,
                         task_index=FLAGS.task_index,
                         protocol="star_server")