分布式张量流复制训练示例:grpc_tensorflow_server - 没有那个文件或目录
Distributed tensorflow replicated training example: grpc_tensorflow_server - No such file or directory
我正尝试按照此博客中的说明进行 distributed tensorflow
实施:Distributed TensorFlow by Leo K. Tam. My aim is to perform replicated training
as mentioned in this
我已经完成 installing tensorflow
之前的步骤并成功 运行 执行以下命令并获得结果:
sudo bazel-bin/tensorflow/cc/tutorials_example_trainer --use_gpu
现在,我要实现的下一件事是通过以下命令在其中一个节点上启动 gRPC server
:
bazel-bin/tensorflow/core/distributed_runtime/rpc/grpc_tensorflow_server --cluster_spec='worker|192.168.555.254:2500;192.168.555.255:2501' --job_name=worker --task_id=0 &
不过,当我 运行 它时,我收到以下错误:rpc/grpc_tensorflow_server:No such file directory
-bash: bazel-bin/tensorflow/core/distributed_runtime/rpc/grpc_tensorflow_server: No such file or directory
我的 rpc
文件夹的内容是:
libgrpc_channel.pic.a libgrpc_remote_master.pic.lo libgrpc_session.pic.lo libgrpc_worker_service_impl.pic.a _objs/
libgrpc_master_service_impl.pic.a libgrpc_remote_worker.pic.a libgrpc_tensor_coding.pic.a libgrpc_worker_service.pic.a
libgrpc_master_service.pic.lo libgrpc_server_lib.pic.lo libgrpc_worker_cache.pic.a librpc_rendezvous_mgr.pic.a
我显然错过了中间的一步,博客中没有提到。我的 objective 是能够 运行 上面提到的命令(启动 gRPC server
),这样我就可以在其中一个节点上启动工作进程。
grpc_tensorflow_server
二进制文件是分布式 TensorFlow 预发布版本中使用的临时措施,它不再默认构建或包含在二进制分发版中。它的替代品是 tf.train.Server
Python class,它更可编程且更易于使用。
您可以使用 tf.train.Server
编写简单的 Python 脚本来重现 grpc_tensorflow_server
的行为:
# ps.py. Run this on 192.168.0.1. (IP addresses changed to be valid.)
import tensorflow as tf
server = tf.train.Server({"ps": ["192.168.0.1:2222"]},
{"worker": ["192.168.0.2:2222", "192.168.0.3:2222"]},
job_name="ps", task_index=0)
server.join()
# worker_0.py. Run this on 192.168.0.2.
import tensorflow as tf
server = tf.train.Server({"ps": ["192.168.0.1:2222"]},
{"worker": ["192.168.0.2:2222", "192.168.0.3:2222"]},
job_name="worker", task_index=0)
server.join()
# worker_1.py. Run this on 192.168.0.3. (IP addresses changed to be valid.)
import tensorflow as tf
server = tf.train.Server({"ps": ["192.168.0.1:2222"]},
{"worker": ["192.168.0.2:2222", "192.168.0.3:2222"]},
job_name="worker", task_index=1)
server.join()
很明显,这个示例可以通过命令行标志等进行清理和重用,但 TensorFlow 没有为这些规定特定的形式。需要注意的主要事项是 (i) 每个 TensorFlow 任务有一个 tf.train.Server
个实例,(ii) 所有 Server
个实例必须使用相同的 "cluster definition" (字典映射作业名称地址列表),以及 (iii) 每个任务由一对唯一的 job_name
和 task_index
.
标识
一旦你在各自的机器上 运行 这三个脚本,你就可以创建另一个脚本来连接它们:
import tensorflow as tf
sess = tf.Session("grpc://192.168.0.2:2222")
# ...
我正尝试按照此博客中的说明进行 distributed tensorflow
实施:Distributed TensorFlow by Leo K. Tam. My aim is to perform replicated training
as mentioned in this
我已经完成 installing tensorflow
之前的步骤并成功 运行 执行以下命令并获得结果:
sudo bazel-bin/tensorflow/cc/tutorials_example_trainer --use_gpu
现在,我要实现的下一件事是通过以下命令在其中一个节点上启动 gRPC server
:
bazel-bin/tensorflow/core/distributed_runtime/rpc/grpc_tensorflow_server --cluster_spec='worker|192.168.555.254:2500;192.168.555.255:2501' --job_name=worker --task_id=0 &
不过,当我 运行 它时,我收到以下错误:rpc/grpc_tensorflow_server:No such file directory
-bash: bazel-bin/tensorflow/core/distributed_runtime/rpc/grpc_tensorflow_server: No such file or directory
我的 rpc
文件夹的内容是:
libgrpc_channel.pic.a libgrpc_remote_master.pic.lo libgrpc_session.pic.lo libgrpc_worker_service_impl.pic.a _objs/
libgrpc_master_service_impl.pic.a libgrpc_remote_worker.pic.a libgrpc_tensor_coding.pic.a libgrpc_worker_service.pic.a
libgrpc_master_service.pic.lo libgrpc_server_lib.pic.lo libgrpc_worker_cache.pic.a librpc_rendezvous_mgr.pic.a
我显然错过了中间的一步,博客中没有提到。我的 objective 是能够 运行 上面提到的命令(启动 gRPC server
),这样我就可以在其中一个节点上启动工作进程。
grpc_tensorflow_server
二进制文件是分布式 TensorFlow 预发布版本中使用的临时措施,它不再默认构建或包含在二进制分发版中。它的替代品是 tf.train.Server
Python class,它更可编程且更易于使用。
您可以使用 tf.train.Server
编写简单的 Python 脚本来重现 grpc_tensorflow_server
的行为:
# ps.py. Run this on 192.168.0.1. (IP addresses changed to be valid.)
import tensorflow as tf
server = tf.train.Server({"ps": ["192.168.0.1:2222"]},
{"worker": ["192.168.0.2:2222", "192.168.0.3:2222"]},
job_name="ps", task_index=0)
server.join()
# worker_0.py. Run this on 192.168.0.2.
import tensorflow as tf
server = tf.train.Server({"ps": ["192.168.0.1:2222"]},
{"worker": ["192.168.0.2:2222", "192.168.0.3:2222"]},
job_name="worker", task_index=0)
server.join()
# worker_1.py. Run this on 192.168.0.3. (IP addresses changed to be valid.)
import tensorflow as tf
server = tf.train.Server({"ps": ["192.168.0.1:2222"]},
{"worker": ["192.168.0.2:2222", "192.168.0.3:2222"]},
job_name="worker", task_index=1)
server.join()
很明显,这个示例可以通过命令行标志等进行清理和重用,但 TensorFlow 没有为这些规定特定的形式。需要注意的主要事项是 (i) 每个 TensorFlow 任务有一个 tf.train.Server
个实例,(ii) 所有 Server
个实例必须使用相同的 "cluster definition" (字典映射作业名称地址列表),以及 (iii) 每个任务由一对唯一的 job_name
和 task_index
.
一旦你在各自的机器上 运行 这三个脚本,你就可以创建另一个脚本来连接它们:
import tensorflow as tf
sess = tf.Session("grpc://192.168.0.2:2222")
# ...