简介
TensorFlow从0.8版本开始,支持分布式集群,并且自带了local server方便测试。
Local server和分布式服务的接口一样,我们将从local server入手,详细解读分布式机器学习集群的用法。
Local server的最简单用法
TensorFlow官方文档提供了local server的最简单用法,安装TensorFlow后直接在交互式Python终端中执行即可。
注意这里server和client启动在同一个进程了,为什么这么说呢?我们都了解TensorFlow客户端可以用Python或C++编写,本质上就是构建一个可执行的Graph,而Graph需要在Session中执行,因此代码中只要包含Session()的就是客户端,这时通过server.target选择本地刚创建的server来执行op。大家可能会好奇server.target是什么,我们在终端可以输出是'grpc://localhost:46685',一个字符串表示服务端的ip和端口,同时也确认它的协议是Google开源的gRPC。
服务器1运行 local_server.py
local_server.py
------------------------------------------------------------------
import tensorflow as tf
server = tf.train.Server.create_local_server()
server.join()
结果如下:端口暴露为46685
服务器2 运行 client.py
client.py
---------------------------------------------------------------------
import tensorflow as tf
c = tf.constan("hello")
server_target = "grpc://服务器1的IP:46685"
sess = tf.Session(server_target)
print (sess.run(c))
sess.close()
结果如下:
注意事项:
若server_target 所指向ip或端口错误,则