如何在TF网络中使用多台计算机的处理器

时间:2016-12-09 10:06:36

标签: python-3.x network-programming tensorflow

我之所以这样问是因为它对我来说是全新的(它更多的是关于Linux问题中的计算机网络,而不是TF,但也许有人已经做过了)

由于我的GPU无法计算我需要的输入数据,我不得不从我的CPU获取资源,但有时甚至CPU + GPU也无法应对所有操作。我可以使用与我的计算机在网络中的另一台计算机的处理器,但我不知道我应该如何编码(我可以访问该计算机,但在那个区域我不是那么好在Linux中:p)

我正在查看TF网页,但他们只是告诉资源何时是本地的。 Here当我的GPU无法处理所有信息时,我发现通常with tf.device('/cpu:0'): ...要解决,我想也许它可能像with tf.device('other_computer/cpu:0'):那样但我认为我会必须更改行sess = tf.Session(config=tf.ConfigProto(log_device_placement=True)),同时我必须访问另一台计算机,但我不知道该怎么做

无论如何,如果有人以前这样做了,我会很感激知道它。我接受任何可以使用的参考资料

由于

1 个答案:

答案 0 :(得分:0)

TensorFlow支持使用由网络连接的多台计算机的CPU(以及可能的GPU)进行分布式计算。你对with tf.device():块有用的直觉是正确的。这是一个广泛的主题,但设置分布式TensorFlow计算有三个主要步骤:

  1. 创建tf.train.Server,将群集中的计算机映射到TensorFlow 作业,这些是任务的列表。您需要在要使用的每台计算机上创建tf.train.Server,并使用相同的cluster definition对其进行配置。

  2. 构建TensorFlow图。使用with tf.device("/job:foo/task:17"):定义一个节点块,这些节点将放置在您在步骤1中定义的名为"foo"的作业的第17个任务中。有一些便捷方法可用于应用设备映射策略,例如{{ 3}},有助于简化常见培训拓扑的这项任务。

  3. 创建连接到本地服务器的tf.train.replica_device_setter()。如果您将服务器创建为server = tf.train.Server(...),则会将您的会话创建为sess = tf.Session(server.target, ...)

  4. 有一个关于分布式TensorFlow可用tf.Session的更长教程,以及一些使用群集here训练初始图像识别模型的示例代码。