【9.3】tensorflow--tf.global_variables_initializer | tf.initializers.global_variables |tf.initializers.global_variables
- tf.initializers.global_variables
- tf.global_variables_initializer
- tf.initialize_all_variables (该函数已经在2017-03以后的版本被踢除)
三个函数都是一个意思,初始化所有的变量
1. 变量初始化
变量初始化的标准形式:
init = tf.initialize_all_variables()
sess = tf.Session()
sess.run(init)
当然也可简写为:
tf.Session().run(tf.initialize_all_variables())
如何有选择地初始化部分变量呢?使用 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)
2. 识别未被初始化的变量
用 try & except 语句块捕获:
uninit_vars = []
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)
3. 变量的更新
>> state = tf.Variable(1, name='counter')
>> add_one = tf.add(state, tf.constant(1))
>> update = tf.assign(state, add_one)
>> with tf.Session() as sess:
sess.run(tf.gloabl_variables_initializer())
sess.run(state)
for _ in range(3):
sess.run(update)
print(sess.run(state))
二、报错
报错1
tensorflow.python.framework.errors_impl.FailedPreconditionError: Attempting to use uninitialized value Variable_1
原因:
在初始的代码中,由于没有使用tf.global_variables_initializer()函数来对变量初始化,导致代码出现错误
解决办法:
在代码中加入tf.global_variables_initializer()函数来对数据进行初始化之后便可解决
sess = tf.Session()
init = tf.global_variables_initializer()
sess.run(init)
参考资料
这里是一个广告位,,感兴趣的都可以发邮件聊聊:tiehan@sina.cn
个人公众号,比较懒,很少更新,可以在上面提问题,如果回复不及时,可发邮件给我: tiehan@sina.cn
个人公众号,比较懒,很少更新,可以在上面提问题,如果回复不及时,可发邮件给我: tiehan@sina.cn