我正在使用去噪堆叠自动编码器来构建神经网络。我训练自动编码器,然后我想将权重W的矩阵和复制/初始化/将它的值克隆到用于监督优化的新变量中。我怎么能做这样的事情?使用张量流使用另一个变量初始化变量
.initialized_value()不为我工作:/
我正在使用去噪堆叠自动编码器来构建神经网络。我训练自动编码器,然后我想将权重W的矩阵和复制/初始化/将它的值克隆到用于监督优化的新变量中。我怎么能做这样的事情?使用张量流使用另一个变量初始化变量
.initialized_value()不为我工作:/
使用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是从不同的模型(在这种情况下是自动编码器)创建的,所以: 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)) –
sess.run 。难道你有两个不同版本的“varA”?您需要一些方法将Python变量对象从创建地点传递到它正在使用的地方。 –
作为一个健全性检查,尝试做“打印varA.name”,它给出了一个唯一的标识符,该ID的图 –
vara.assign(varb) –
我必须有错误在其他地方,因为这仍然不起作用:/ –