tf.global_variables_initializer() 将在其创建时查看全局图并自动将依赖关系添加到图中的每个 tf.initializer。
当我们在之后使用 sess.run(init) 对它求值时,它会告诉每个初始化程序执行变量初始化,并允许我们运行 sess.run(count_variable) 而不出错。
tf.Session.run(tf.global_variables_initializer())
等同于:
with tf.Session() as sess:
init = tf.global_variables_initializer()
sess.run(init)
等同于:
init = tf.global_variables_initializer()
sess = tf.Session()
sess.run(init)
tf.global_variables_initializer() == tf.initialize_all_variables()
但是在 2017年3月2号以后, tf.initialize_all_variables() 该函数将不再使用。取而代之的是 tf.global_variables_initializer()
来自TensorFlow 文档的重要说明:
tf.initialize_all_variables(): THIS FUNCTION IS DEPRECATED. It will be removed after 2017-03-02. Instructions for updating: Use tf.global_variables_initializer instead.
使用 tf.initialize_variables()
# 要初始化v_6, v_7, v_8三个变量:
init_new_vars_op = tf.initialize_variables([v_6, v_7, v_8])
sess.run(init_new_vars_op)
N.B.: 识别 未被初始化的变量 的小技巧:
uninit_vars = []
# 用 try & except 语句块捕获:
for var in tf.all_variables():
try:
sess.run(var)
except tf.errors.FailedPreconditionError:
uninit_vars.append(var)
init_new_vars_op = tf.initialize_variables(uninit_vars)
[1] 令人困惑的TensorFlow!