Variables Tensorflow:初始化因变量
我试图根据其他变量的值初始化一些变量。下面是一个简单的脚本:Variables Tensorflow:初始化因变量,variables,tensorflow,initialization,Variables,Tensorflow,Initialization,我试图根据其他变量的值初始化一些变量。下面是一个简单的脚本: a = tf.Variable(1, name='a') b = a + 2 c = tf.Variable(b, name='c') d = c + 3 e = tf.Variable(d, name='e') with tf.Session() as sess: sess.run(tf.global_variables_initializer()) print(sess.run([a, c, e])) 这将引发以
a = tf.Variable(1, name='a')
b = a + 2
c = tf.Variable(b, name='c')
d = c + 3
e = tf.Variable(d, name='e')
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
print(sess.run([a, c, e]))
这将引发以下异常:
FailedPreconditionError (see above for traceback): Attempting to use
uninitialized value a.
但如果我删除变量e,它就可以正常工作:
a = tf.Variable(1, name='a')
b = a + 2
c = tf.Variable(b, name='c')
d = c + 3
#e = tf.Variable(d, name='e')
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
print(sess.run([a, c])) # [1, 3]
在声明e之前,我试图通过使用
tf.control\u依赖项([b,d])
来克服这个问题,但它不起作用 如果只是想按原样执行代码,那么就这样做了
with tf.Session() as sess:
a = tf.Variable(1, name='a')
a.initializer.run()
b = a + 2
c = tf.Variable(b, name='c')
d = c + 3
e = tf.Variable(d, name='e')
sess.run(tf.global_variables_initializer())
print(sess.run([a, c, e]))
关于这一点的进一步研究是必要的