【问题标题】:How to create copies of variables / constants / placeholders in TensorFlow?如何在 TensorFlow 中创建变量/常量/占位符的副本?
【发布时间】:2017-08-29 20:39:44
【问题描述】:

我正在尝试在 TensorFlow 上模拟我的去中心化算法,因此我想创建我的 Model 对象的副本,其中包括变量/占位符/常量到我的每个 Worker 对象中。例如,一个模型包含

self.w = tf.Variable(tf.zeros([10, 784]))
self.X = tf.placeholder(shape=(BATCH_SIZE, 784), dtype=tf.float32)

现在我想为所有Workers 创建这些东西的副本,以便我可以分别初始化、训练和测试它们。实际上,我可以使用显式的 for_loops 为每个工作人员创建它们,但我想象一些 Distributor 对象将其自己的虚拟模型复制到所有工作人员,而不是深入并自己操作 Model 对象。

我试过了

  • tf.identity,但它将变量转换为张量。
  • copy.deepcopy 只是给出错误。
  • 记录变量的所有内容并使用tf.Variable 重新创建它们。它很麻烦而且不全面。

任何想法将不胜感激!谢谢!

【问题讨论】:

    标签: python tensorflow distributed-computing


    【解决方案1】:

    创建一个 Python 函数来构建您的模型并多次调用该函数。小心变量重用的故事。

    一般来说,没有办法安全地多次复制图中的所有状态。

    【讨论】:

    • 感谢您的回答。我想到了一种更好的逻辑方法:首先为每个代理分配他们的数据集,并给定损失模型,我会让他们推断出变量和占位符的正确大小。
    • 嘿,我正在函数内部创建一个变量并返回该变量。但有一件事是变量被覆盖了。我该怎么办?
    • @jackwilson 我需要查看更多代码才能了解发生了什么。您能否提出一个包含更多信息的单独问题?
    • 嘿,我已经发布了我在此处粘贴链接的问题:stackoverflow.com/questions/54152029/…
    猜你喜欢
    • 1970-01-01
    • 2019-10-05
    • 2018-05-20
    • 2018-04-23
    • 1970-01-01
    • 2017-09-23
    • 1970-01-01
    • 1970-01-01
    • 2016-10-03
    相关资源
    最近更新 更多