我试图得到一个分布式TensorFlow工作的一个非常简单的例子.但是,我有一个在运行之间看起来不确定的错误.在某些运行中,它完美地运行.输出以下内容:
Worker 2 | step 0
Worker 0 | step 0
Worker 1 | step 0
Worker 3 | step 0
Worker 2 | step 1
Worker 0 | step 1
Worker 1 | step 1
Worker 3 | step 1
...
Run Code Online (Sandbox Code Playgroud)
但是,每隔一段时间,一个或多个工作人员就无法运行,导致输出如下:
Worker 0 | step 0
Worker 3 | step 0
Worker 0 | step 1
Worker 3 | step 1
Worker 0 | step 2
Worker 3 | step 2
...
Run Code Online (Sandbox Code Playgroud)
如果我无限期地运行循环,似乎缺少的工作人员总是在某个时刻启动,但仅仅几分钟后,这是不切实际的.
我发现有两件事情会让问题消失(但是让程序变得无用):1.不在with tf.device(tf.train.replica_device_setter())范围内声明任何变量.如果我甚至声明一个变量(例如nasty_var …