今天在做分布式实例搭建的时候出现了上述问题。
出现现象:1.当只有1台参数服务器,1台计算服务器的时候,程序是没有问题的(也可能只是我尝试的那次没有问题)
2.当使用1台参数服务器,2台计算服务器的时候,程序就出现了上述的问题。
一开始以为是gRPC的问题,因为一开始出现的问题是
tensorflow.python.framework.errors_impl.UnknownError: Could not start gRPC server
后来将计算节点的端口号改为一致之后才没有问题。
之后我看了看有可能是tf.train.Supervisor()函数的问题,后来修改成tf.train.MonitoredTrainingSession()后也是不行,但是也是一个方向。
找了好久都找不到原因,最后我是看到该博客上的方法才可以。
https://github.com/tensorflow/tensorflow/issues/17852
一开始原博主说的是将gRPC的版本恢复成旧版本,我找了下可能要好老的版本,现在是gprcio.1.19,后来也不行。
后来说了可能是由于gRPC的环境变量问题,GRPC_POLL_STRATEGY=poll
通过设置这个即可。
在文件中编辑即可。
import os os.environ['GRPC_POLL_STRATEGY'] = "poll"