原文地址:http://www.alannah.cn/2019/02/28/tensorflow-errorattempting-to-use-uninitialized-value-variable_1/
在通过tensorflow搭建深度学习网络时遇到的问题:Attempting to use uninitialized value Variable_1
该错误的产生是因为使用了未初始化的变量导致的,在训练网络前对变量进行初始化即可。
sess = tf.Session()
init = tf.global_variables_initializer()
sess.run(init)
在某些情况下,添加上述代码段时仍然会报错,这是因为仍有部分所使用变量在函数内部所声明,上述代码进行初始化时不会对这部分变量进行初始化,通过tf.report_uninitialized_variables()函数查看网络中未进行初始化的变量。tf.initialize_all_variables()函数在最最新的tensorflow中已经弃用,系统建议使用tf.global_variables_initializer() ,但是通过尝试发现,该函数可对所有变量进行初始化,包括在函数内部声明的张量变量。
sess = tf.Session()
init = tf.initialize_all_variables()
sess.run(init)
tf.initialize_all_variables()可对网络中所有变量进行初始化。
tensorflow变量初始化方式:
1、tf.global_variables_initializer() :初始化全局变量
2、tf.initialize_all_variables():初始化所有变量(已弃用,但仍然可以使用,可对所有变量进行初始化)
3、tf.initialize_variables():初始化指定变量如,tf.initialize_variables([var1,var2...])
查看未初始化的变量
print(sess.run(tf.report_uninitialized_variables())) #check:未初始化的变量