【问题标题】:Initializing variable with another variable using tensorflow使用 tensorflow 用另一个变量初始化变量
【发布时间】:2016-05-01 04:59:24
【问题描述】:

我正在使用去噪堆叠自动编码器构建神经网络。我训练自动编码器,然后我想获取权重矩阵 W 并将其值复制/初始化/克隆到用于监督优化的新变量中。我怎么能做这样的事情?

.initialized_value() 对我不起作用:/

【问题讨论】:

  • 我必须在其他地方出错,因为这仍然不起作用:/

标签: python initialization tensorflow


【解决方案1】:

使用var.assign,即

vara = tf.Variable(0)
varb = tf.Variable(0)
init_op = tf.initialize_all_variables()
sess = tf.InteractiveSession()
sess.run([init_op])
sess.run([vara.assign_add(1)])
print 'variable a', vara.eval()
print 'variable b', varb.eval()
sess.run([varb.assign(vara)])
print 'variable b', varb.eval()

你应该看到

variable a 1
variable b 0
variable b 1

【讨论】:

  • 考虑 varA 是从不同的模型(在本例中为自动编码器)创建的,因此:varB = tf.Variable([size])。 varB.assign(varA) init = tf.initialize_all_variables() session = tf.Session() session.run(init) ...这什么也没做。 varA 被训练为: tf.Variable(tf.zeros([self.n_hidden], dtype=tf.float32))
  • sess.run([varB.assign(varA) ]) 会将 varA 的值复制到 varB。难道你有两个不同版本的“varA”?您需要某种方式将 Python 变量对象从创建它的地方传递到使用它的地方。
  • 作为健全性检查,尝试执行“print varA.name”,它会给出一个唯一标识符,该标识符是图中的节点
  • 我可以与您联系并提供更多详细信息吗?
  • 好的,这行得通。我的问题不同。谢谢你的澄清
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-01-23
  • 2018-12-29
  • 2018-03-15
  • 1970-01-01
  • 1970-01-01
  • 2017-06-16
  • 1970-01-01
相关资源
最近更新 更多