gpt4 book ai didi

tensorflow - tensorflow 中的图间复制 : sessions and variables

转载 作者:行者123 更新时间:2023-12-04 03:14:50 27 4
gpt4 key购买 nike

关于分布式 Tensorflow 中图间复制的问题,因为我没有从教程中得到一些时间。据我了解当前模型:

我们有参数服务器,我们只是在单独的进程中启动并制作 server.join()。我们有工作人员,他们每个人都构建相似的计算图,其中包含链接到参数服务器(通过 tf.train.replica_device_setter)的参数节点和放置在工作人员自身上的计算节点。

我没有找到的:

  1. session 在此模型中如何运作?因为在示例/教程中它隐藏在 tf.train.Supervisor 后面。我们是对每个工作人员都有单独的 session ,还是只有一个巨大的 session 来积累来自所有工作人员和参数服务器的图表?

  2. 如何在参数服务器上初始化全局变量?我想知道如果我通过 tf.train.replica_device_setter 将这些参数链接到工作进程中,我是否可以在其中一个工作进程中初始化它们(选择它作为“主”)。对吗?

  3. 在以下要点中:

https://gist.github.com/yaroslavvb/ea1b1bae0a75c4aae593df7eca72d9ca

全局变量仅在参数服务器进程中初始化,所有工作人员都认为它们已初始化。这怎么可能,因为他们甚至在不同的 session 上工作?我无法在更简单的示例中复制它。

  1. 我在核心程序中进行主要 session ,我在其中执行模型训练。训练循环的一部分是收集数据,这又需要在 tensorflow 集群上进行计算。所以我需要创建这个集群,把训练模型的当前状态放在参数服务器上,然后从计算中收集数据并继续训练循环。我如何:1) 将当前经过训练的模型传递给集群? 2) 从集群中提取收集到的数据并将其传递给主程序?

提前致谢!

编辑:

到问题 3:之前已回答 (In tensorflow, is variable value the only context information a session stores?),分布式运行时变量在 session 之间共享。这是否意味着当我使用某个“目标”创建 session 时,所有变量都将在同一图表上运行的那些 session 之间共享?

最佳答案

我想我可以尝试自己回答这些问题,至少它可能对其他尝试利用分布式 Tensorflow 的新手有所帮助,因为到目前为止还缺乏关于该主题的简洁明了的博客文章。

如有需要,望有识之士指正。

  1. 我们在所有服务器上都有单独的 session ,这些 session 共享它们的资源(变量、队列和读取器)但仅限于分布式设置(即您将 server.target 传递给 tf.Session 构造函数).

引用:https://www.tensorflow.org/api_docs/python/client/session_management#Session

  1. 参数变量通常在一个“主”进程中初始化。它可以是启动参数服务器的进程。 但并不一定要在一个过程中完成。

  2. 因为第 1 页。已复制:)

  3. 感谢@YaroslavBulatov 的想法,我得出了以下方法,这似乎是最简单的方法:

    • 集群:一个本地“计算服务器”和N个“ worker ”。
    • “计算服务器”保留全局网络的所有参数并执行训练步骤。所有训练操作都分配给它。
    • “Workers”并行收集数据,然后放入Queue;这些数据在执行训练步骤时由“计算服务器”使用。

因此,高级算法:

  1. 启动集群中的所有单元
  2. 在计算服务器上构建图表和训练操作
  3. 构建员工薪酬图(变量与计算相关联服务器)。
  4. 与 worker 一起收集数据
  5. 在计算服务器上执行训练步骤并更新全局网络

重复 4-5 直到收敛:)

到目前为止,我通过队列在计算服务器和工作人员之间进行协调(何时开始收集数据以及何时开始训练步骤),这绝对不是最优雅的解决方案。非常欢迎任何反馈。

关于tensorflow - tensorflow 中的图间复制 : sessions and variables,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42046944/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com