2016-01-25 46 views
2

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

.initialized_value()不为我工作:/

+0

vara.assign(varb) –

+0

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

回答

3

使用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 
+0

考虑varA是从不同的模型(在这种情况下是自动编码器)创建的,所以: v arB = tf.Variable([size])。 varB.assign(翻) 的init = tf.initialize_all_variables() 会话= tf.Session() session.run(INIT) ......这什么也不做。 (var.assign(varA)])会将varA的值复制到varB(var.assign(varA)])varB被训练为: tf.Variable(tf.zeros([self.n_hidden],dtype = tf.float32)) –

+0

sess.run 。难道你有两个不同版本的“varA”?您需要一些方法将Python变量对象从创建地点传递到它正在使用的地方。 –

+0

作为一个健全性检查,尝试做“打印varA.name”,它给出了一个唯一的标识符,该ID的图 –