启动TensorFlow服务器(tf.distribute.Server
(时,必须传递一个指定集群中所有任务/工作者的ClusterSpec
。
启动服务器后,是否可以向其添加更多工作线程?如何?
如果没有,为什么不呢?
(这与问题有关,为什么服务器需要提前了解所有工作人员? 虽然这不是完全相同的问题。
(这也与一个问题有关,远程通信有哪些运营商?目前我只知道这个(官方(分布式 TensorFlow 功能,通过具有ClusterSpec
的 TF 服务器。 其他非官方解决方案是例如Tensorpack TF ZMQ ops,您可以在其中以任何您想要的方式进行通信(通过ZeroMQ(,并且您也不需要事先/提前了解整个集群。
开箱即用,我认为不可能向正在运行的服务器添加更多的工作线程/任务。
tf.distribute.Server 类使用 TensorFlow 的低级 C API 的服务器类。此类提供了一个 UpdateServerDef 方法,该方法可用于修改正在运行的服务器的配置,从而更改工作器/任务。
但是,此更新方法不会通过 TensorFlow python 绑定公开,因此除非您愿意修改和编译自己的 TensorFlow C 核心,否则我认为这是不可能的。