分布式TensorFlow中单个机器上的多个工人

分布式TensorFlow中单个机器上的多个工人,tensorflow,Tensorflow,是否可以在本地机器上启动分布式TensorFlow,使每个工作人员都有一个模型副本 如果是,是否可以分配每个代理只使用一个CPU内核?对于第一个问题,答案是肯定的。详情如下: 对于第二个问题,我不确定Tensorflow是否在核心级别具有这种级别的细粒度控制;但总体而言,操作系统将在多个内核上实现线程负载平衡 请注意,如果您有多个CPU/GPU,Tensorflow确实能够在处理器级别指定设备。是,可以启动: 每个任务通常在不同的机器上运行,但您可以在同一台机器上运行多个任务(例如,控制不同的G

是否可以在本地机器上启动分布式TensorFlow,使每个工作人员都有一个模型副本


如果是,是否可以分配每个代理只使用一个CPU内核?

对于第一个问题,答案是肯定的。详情如下:

对于第二个问题,我不确定Tensorflow是否在核心级别具有这种级别的细粒度控制;但总体而言,操作系统将在多个内核上实现线程负载平衡


请注意,如果您有多个CPU/GPU,Tensorflow确实能够在处理器级别指定设备。

是,可以启动:

每个任务通常在不同的机器上运行,但您可以在同一台机器上运行多个任务(例如,控制不同的GPU设备)

并且每个工人都有以下权利:

如果在同一进程中使用多个图(使用tf.graph()创建),则必须为每个图使用不同的会话,但每个图可以在多个会话中使用

正如在您的评论中提到的,有一个建议是如何尝试并实现分布式TF到a的执行,这涉及到分发到不同的CPU,然后将线程池限制为单个线程


目前还没有允许对特定内核分布式执行TF图的功能

这就是限制使用1个内核的答案:虽然TensorFlow没有将执行绑定到特定内核的功能,但由于分布式运行时使用不同的进程,因此可以使用来实现相同的结果。请注意,您可能还希望限制启动会话时创建的线程数(
tf.ConfigProto.inter_op_parallelism_threads
tf.ConfigProto.intra_op_parallelism_threads
是相关的配置选项)。