首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TensorFlow硕士和工人服务

TensorFlow硕士和工人服务
EN

Stack Overflow用户
提问于 2016-08-03 00:28:05
回答 1查看 2.7K关注 0票数 14

我正在努力理解TensorFlow中主服务和工作人员服务的确切角色。

到目前为止,我了解到我启动的每个TensorFlow任务都与一个tf.train.Server实例相关联。这个实例通过实现tensorflow::Session接口(主)和worker_service.proto (工作者)来导出“主服务”和“辅助服务”。

第一个问题:我说得对吗?这意味着一项任务只与一名工人相关吗?

而且我明白..。

...about大师:这是主服务的范围.

(1) ...to向客户端提供函数,以便客户机可以运行会话。

(2) ...to将工作委托给可用的工作人员,以便计算会话运行。

第二个问题:如果我们执行一个使用多个任务分发的图,那么只使用一个主服务吗?

第三个问题: tf.Session.run应该只打一次电话吗?

至少我是这样从白纸来解释这个数字的。

..。关于工人:这是工人服务的范围.

(1)在工人管理的设备上执行节点(由主服务委托给他)。

第四个问题:一个员工如何使用多个设备?员工是否自动决定如何分发单个操作?

请也纠正我,以防我提出错误的陈述!提前谢谢你!!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-03 16:48:30

第一个问题:我说得对吗,这意味着一项任务只与一名工人有关?

这是典型的配置,是的。每个tf.train.Server实例都包含一个完整的TensorFlow运行时,默认配置假定该运行时具有对机器的独占访问权限(根据它在GPU上分配的内存大小等等)。

请注意,您可以在同一个进程中创建多个tf.train.Server实例(有时我们会这样做用于测试)。但是,这些实例之间几乎没有资源隔离,因此在单个任务中运行多个实例不太可能产生良好的性能(使用当前版本)。

第二个问题:如果我们执行一个使用多个任务分配的图,那么只使用一个主服务吗?

这取决于您正在使用的复制形式。如果使用“图中复制”,则可以使用单个主服务,该服务了解模型的所有副本(即工作任务)。如果使用“图间复制”,则将使用多个主服务,每个主服务都知道模型的单个副本,并且通常与其运行的辅助任务并置。通常,我们发现在图间复制中使用更好的性能,而tf.train.Supervisor库的设计是为了简化这种模式下的操作。

第三个问题:tf.Session.run()应该只打一次电话吗?

(我想这意味着“每一步训练一次”)。一个用于训练模型的简单TensorFlow程序将在循环中调用tf.Session.run()。)

这取决于您使用的复制形式、--您希望在培训更新之间进行协调。

  • 使用在图中的复制,您可以通过聚合单个tf.train.Optimizer中的损失或梯度来进行同步更新,这会给出一个train_op来运行。在这种情况下,每个训练步骤只调用一次tf.Session.run(train_op)
  • 使用asynchronous中的复制,您可以通过每个副本定义一个tf.train.Optimizer来进行更新,这样可以运行多个train_op操作。在这种情况下,您通常会同时从不同的线程调用每个tf.Session.run(train_op[i])
  • 使用between-graph复制,可以使用在每个副本中单独构造的同步更新。每个副本都有自己的训练循环,对tf.Session.run(train_op)进行一次调用,SyncReplicasOptimizer对这些调用进行协调,以便同步地应用更新(通过一个工作人员中的一个后台线程)。
  • 使用between-graph复制,您可以使用另一个tf.train.Optimizer子类(tf.train.SyncReplicasOptimizer除外)进行asynchronous更新,使用类似于同步情况的训练循环,但不需要后台协调。

第四个问题:一名工人如何使用多种设备?工人是否自动决定如何分配单个操作?

每个员工运行的布局算法与单进程TensorFlow中使用的相同。除非另有指示,否则如果有一个GPU可用(并且有一个GPU加速的实现),砂矿将把操作放在GPU上,否则它将回到CPU上。tf.train.replica_device_setter()设备函数可用于在充当“参数服务器”的任务中分解变量。如果您有更复杂的需求(例如,多个GPU、员工上的局部变量等)您可以使用显式with tf.device(...):块为特定设备分配子图。

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38732502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档