首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

tensorflow: variable初始化

全部变量初始化

tf.global_variables_initializer() 将在其创建时查看全局图并自动将依赖关系添加到图中的每个 tf.initializer。

当我们在之后使用 sess.run(init) 对它求值时,它会告诉每个初始化程序执行变量初始化,并允许我们运行 sess.run(count_variable) 而不出错。

代码语言:javascript
复制
tf.Session.run(tf.global_variables_initializer())

等同于:

代码语言:javascript
复制
with tf.Session() as sess:
    init = tf.global_variables_initializer()
    sess.run(init)

等同于:

代码语言:javascript
复制
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()

代码语言:javascript
复制
# 要初始化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.: 识别 未被初始化的变量 的小技巧:

代码语言:javascript
复制
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!

下一篇
举报
领券