FailedPreconditionError:尝试使用未初始化的值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FailedPreconditionError:尝试使用未初始化的值相关的知识,希望对你有一定的参考价值。
我正在尝试组建一个神经网络,我想保存我初始化网络以供以后使用的权重。
这是创建网络的代码:
def neural_network_model(data, layer_sizes):
num_layers = len(layer_sizes) - 1 # hidden and output layers
layers = [] # hidden and output layers
# initialise the weights
weights = {}
for i in range(num_layers):
w_name = 'W' + str(i+1)
b_name = 'b' + str(i+1)
w = tf.get_variable(w_name, [layer_sizes[i], layer_sizes[i+1]],
initializer = tf.contrib.layers.xavier_initializer(), dtype=tf.float32)
b = tf.get_variable(b_name, [layer_sizes[i+1]],
initializer = tf.zeros_initializer(), dtype=tf.float32)
layers.append({'weights': w, 'biases': b})
weights[w_name] = w
# save the weights dictionary
saver = tf.train.Saver(var_list=weights)
with tf.Session() as sess:
sess.run(init)
save_path = saver.save(sess, path + 'weights.ckpt') # path is set elsewhere
我得到的错误如下:
FailedPreconditionError: Attempting to use uninitialized value b2
(我也把W1
和W3
作为未初始化的值)。
这怎么可能? sess.run(init)
(我在代码前面指定init
为tf.global_variables_initializer()
)不应该关注所有变量初始化吗?
完成创建图形后,最后需要创建variable initializer
。
当你调用tf.global_variable_initializer()
时,它会获取在此之前创建的所有可训练变量。因此,如果在创建图层(和变量)之前定义它,那么这些新变量将不会添加到此初始值设定项中。
以上是关于FailedPreconditionError:尝试使用未初始化的值的主要内容,如果未能解决你的问题,请参考以下文章
FailedPreconditionError:尝试在 Tensorflow 中使用未初始化
FailedPreconditionError:尝试在 Tensorflow 中使用未初始化
尝试在张量流上使用 RMSPropOptimizer 时出现 FailedPreconditionError
FailedPreconditionError:尝试使用未初始化的值
FailedPreconditionError:尝试使用未初始化的值Adam / lr
tensorflow.python.framework.errors_impl.FailedPreconditionError: Could not find variable var.