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]))
关于这一点的进一步研究是必要的