如何在TensorFlow中创建变量/常量/占位符的副本?

时间:2017-08-29 20:39:45

标签: python tensorflow distributed-computing

我试图在TensorFlow上模拟我的分散算法,所以我想创建我的Model对象的副本,其中包含变量/占位符/常量到我的每个Worker对象中。例如,模型包含

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

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

我试过了

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

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

1 个答案:

答案 0 :(得分:0)

创建一个python函数,用于构建模型并多次调用该函数。注意变量重用故事。

通常无法安全地多次复制图形中图形的所有状态。