【问题标题】:Distributed TensorFlow: about the using of tf.train.Supervisor.start_queue_runners分布式TensorFlow:关于tf.train.Supervisor.start_queue_runners的使用
【发布时间】:2017-01-16 21:30:11
【问题描述】:

我正在研究distributed inception model in TF 的代码,其中我有以下关于tf.train.Supervisor.start_queue_runnersinception_distributed_train.py 中的使用的问题:

  1. 为什么我们需要在行内显式调用sv.start_queue_runners() 264 并在inception_distributed_train.py 中加入269?在API doc. of start_queue_runners,我认为不需要这样 由于以下原因来电:

    请注意,在图键 QUEUE_RUNNERS 中收集的队列运行器 当您使用 主管,所以除非你有未收集的队列跑步者开始 你不需要显式调用它。

  2. 我注意到queue_runners 的值在调用 sv.start_queue_runners264 和行中不同 269inception_distributed_train.py。但不是 chief_queue_runners也在收藏中 tf.GraphKeys.QUEUE_RUNNERS(所有QUEUE_RUNNERS都是在263行中获得的)?如果 所以,那么就不需要线 269 因为 chief_queue_runners 已经 已在264 行开始。

  3. 另外,能否请您向我解释一下或向我展示一些关于tf.train.Supervisor 中创建了哪些队列的参考资料?

感谢您的宝贵时间!

【问题讨论】:

    标签: tensorflow distributed-computing


    【解决方案1】:

    不是答案,而是一些一般说明如何找到答案:)

    首先,利用github的责备,inception_distributed 是在4月13日签入的,而start_queue_runners中的评论是在4月15日添加的,所以可能是功能发生了变化,但没有在所有地方更新使用它。

    您可以注释掉该行并查看是否仍然有效。如果没有,您可以在创建队列运行器的位置添加import pdb; pdb.set_trace()(即here),看看是谁在创建那些额外的无人值守队列运行器。

    此外,Supervisor 的开发似乎已经放缓,事情正在转移到 FooSession(来自评论 here)。这些提供了更强大的训练架构(您的工作人员不会因为临时网络错误而崩溃),但目前还没有很多关于如何使用它们的示例。

    【讨论】:

    • 感谢您的回复,雅罗斯拉夫!我问了一些问题以获得一些快速的答案,我会检查这些问题。此外,您关于迁移到 FooSession 的信息很有价值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-11
    • 1970-01-01
    • 2017-08-19
    相关资源
    最近更新 更多