@zh350229319
2019-03-27T07:42:16.000000Z
字数 2005
阅读 830
TensorFlow
tar -zxvf Python-3.6.5.tgzcd Python-3.6.5/./configure --prefix=/usr/local/python3makemake install# 删除原来的python引用,替换为python3rm /usr/bin/pythonln -s /usr/local/python3/bin/python3 /usr/bin/pythonln -s /usr/local/python3/bin/pip3 /usr/bin/pip#测试python
yum命令需要 python2 环境执行
修改 /usr/bin/yum 文件中的第一行为 #!/usr/bin/python2
因为CPU型号较老,只能安装 1.5 版本
在节点上分别执行 pip install tensorflow==1.5
在第 1 台机器上执行 vi server.py
在另外 2 台机器上分别修改task_index为 1,2
import tensorflow as tfworker1 = "hbbw214:12000"worker2 = "hbbw112:10000"worker3 = "hbbw113:10000"worker_hosts = [worker1, worker2, worker3]cluster_spec = tf.train.ClusterSpec({ "worker": worker_hosts})server = tf.train.Server(cluster_spec, job_name="worker", task_index=0)server.join()
在第2台机器上执行vi server.py
import tensorflow as tfworker1 = "hbbw214:12000"worker2 = "hbbw112:12000"worker3 = "hbbw113:12000"worker_hosts = [worker1, worker2, worker3]cluster_spec = tf.train.ClusterSpec({ "worker": worker_hosts})server = tf.train.Server(cluster_spec, job_name="worker", task_index=1)server.join()
在第3台机器上执行vi server.py
import tensorflow as tfworker1 = "hbbw214:12000"worker2 = "hbbw112:12000"worker3 = "hbbw113:12000"worker_hosts = [worker1, worker2, worker3]cluster_spec = tf.train.ClusterSpec({ "worker": worker_hosts})server = tf.train.Server(cluster_spec, job_name="worker", task_index=2)server.join()
在任意一台机器上执行 vi client.py
import tensorflow as tfimport numpy as nptrain_X = np.linspace(-1,1,1000000)train_Y = 2*train_X + np.random.randn(*train_X.shape)*0.33+10X = tf.placeholder("float")Y = tf.placeholder("float")w = tf.Variable(0.0, name="weight")b = tf.Variable(0.0, name="reminder")init_op = tf.global_variables_initializer()cost_op = tf.square(Y - tf.multiply(X,w) - b)train_op = tf.train.GradientDescentOptimizer(0.01).minimize(cost_op)with tf.Session("grpc://hbbw214:10000") as sess:with tf.device("/job:worker/task:0"):sess.run(init_op)for i in range(10):for (x, y) in zip(train_X, train_Y):sess.run(train_op, feed_dict={X:x, Y:y})print(sess.run(w))print(sess.run(b))
先分别执行 python server.py
最后执行 python client.py