我跟随一个例子here来学习MNIST上的分布式TF。我将群集配置更改为:
parameter_servers = ["1.2.3.4:2222"]
workers = [ "1.2.3.4:2222", "5.6.7.8:2222"]
1.2.3.4
和5.6.7.8
只是我的两个节点的表示。它们不是真正的IP地址。整个脚本名为example.py
在1.2.3.4
上,我跑了:python example.py --job_name=ps --task_index=0
然后在同一台机器上,我在另一个终端运行python example --job_name=worker --task_index=0
。看起来它只是在等待。
在5,6,7,8
上,我跑了python example.py --job_name=worker --taks_index=1
。之后,我立即在5.6.7.8
上收到以下错误:
tensorflow.python.framework.errors.UnavailableError: {"created":"@1480458325.580095889","description":"EOF","file":"external/grpc/src/core/lib/iomgr/tcp_posix.c","file_line":235,"grpc_status":14}
I tensorflow/core/distributed_runtime/master_session.cc:845] DeregisterGraph error: Aborted: Graph handle is not found: . Possibly, this worker just restarted.
和
tensorflow/core/distributed_runtime/graph_mgr.cc:55] 'unit.device' Must be non NULL
Aborted (core dumped)
on 1.2.3.4
这是因为我在同一台机器上运行参数服务器和工作器吗?我没有超过2个节点,所以如何解决这个问题呢?
答案 0 :(得分:0)
所以过了一天我终于得到了修复:
workers = [ "1.2.3.4:2222", "5.6.7.8:2222"]
更改为workers = [ "1.2.3.4:2223", "5.6.7.8:2222"]
。请注意端口号的更改。这就是需要做的一切。