Сервер параметров Tensorflow не запускается

Я пытаюсь распространить учебное задание, используя Оценщик Tensorflows и функцию train_and_evaluate. При настройке одного узла обучение и оценка уже работают, как и ожидалось.

(Детали к обучающему заданию и определение оценщиков не должны быть релевантными, но если кто-то заинтересован, я уже опубликовал детали для установки в предыдущем посте)

Однако в распределенном режиме я столкнулся с проблемой, заключающейся в том, что процесс, выполняющий задание сервера параметров, не запустится должным образом и станет безответственным после запуска. Это верно даже при минимальной настройке следующим образом

def main():
    cluster = tf.train.ClusterSpec({"ps": ["localhost:2222"]})
    server = tf.train.Server(cluster, job_name="ps", task_index=0)
    server.join()

if __name__ == '__main__':
    main()

Выполнение сценария не выдает ошибок, и в соответствии с журналом сервер должен быть запущен на localhost:2222

$ python custom_estimator.py
2018-07-26 18:38:15.347685: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:883] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2018-07-26 18:38:15.348352: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1392] Found device 0 with properties: 
name: GeForce GTX 1060 major: 6 minor: 1 memoryClockRate(GHz): 1.6705
pciBusID: 0000:01:00.0
totalMemory: 5.93GiB freeMemory: 5.42GiB
2018-07-26 18:38:15.348382: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1471] Adding visible gpu devices: 0
2018-07-26 18:38:15.538124: I tensorflow/core/common_runtime/gpu/gpu_device.cc:952] Device interconnect StreamExecutor with strength 1 edge matrix:
2018-07-26 18:38:15.538151: I tensorflow/core/common_runtime/gpu/gpu_device.cc:958]      0 
2018-07-26 18:38:15.538175: I tensorflow/core/common_runtime/gpu/gpu_device.cc:971] 0:   N 
2018-07-26 18:38:15.538373: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1084] Created TensorFlow device (/job:ps/replica:0/task:0/device:GPU:0 with 5193 MB memory) -> physical GPU (device: 0, name: GeForce GTX 1060, pci bus id: 0000:01:00.0, compute capability: 6.1)
2018-07-26 18:38:15.587481: I tensorflow/core/distributed_runtime/rpc/grpc_channel.cc:215] Initialize GrpcChannelCache for job ps -> {0 -> localhost:2222}
2018-07-26 18:38:15.588413: I tensorflow/core/distributed_runtime/rpc/grpc_server_lib.cc:369] Started server with target: grpc://localhost:2222

Однако ни один порт не связан с портом 2222, и процесс становится безответственным (то есть он не может быть остановлен с помощью KeyboardInterrupt)

$ netstat | grep 2222
# empty result

Запуск рабочего или главного узла, как описано в моем предыдущем посте, привязывает порт и запускает KeyboardInterruptспособный процесс.

$ netstat | grep 2222
tcp6       0      0 simon:2222              localhost:34216         ESTABLISHED
tcp6       0      0 localhost:34216         simon:2222              ESTABLISHED

Кто-нибудь имеет хорошее предположение, что здесь происходит не так? Так как я не получаю никаких ошибок, трудно дать больше информации.

Моя системная информация выглядит следующим образом

  • Tensorflow 1.8 (скомпилировано из исходного кода)

  • CUDA 9.0

  • CUDNN 7.1.3

  • GPU: GeForce GTX 1060

  • Python 3.5.2

0 ответов

Другие вопросы по тегам