Необходимо инициализировать переменные перед использованием их. ​
, При попытке оценить переменные прежде, чем инициализировать их, Вы столкнетесь: FailedPreconditionError: Attempting to use uninitialized value tensor.
самый легкий путь инициализирует все переменные сразу с помощью: tf.global_variables_initializer()
init = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init)
Вы используете sess.run(init)
для выполнения инициализатора, не выбирая значения.
Для инициализации только подмножества переменных Вы используете tf.variables_initializer()
список переменных:
var_ab = tf.variables_initializer([a, b], name="a_and_b")
with tf.Session() as sess:
sess.run(var_ab)
можно также инициализировать каждую переменную отдельно с помощью tf.Variable.initializer
# create variable W as 784 x 10 tensor, filled with zeros
W = tf.Variable(tf.zeros([784,10])) with tf.Session() as sess:
sess.run(W.initializer)
FailedPreconditionError прибывает, потому что сессия пытается считать переменную, которую инициализировал hasn "t.
С версия 1.11.0 Tensorflow , необходимо взять это:
init_op = tf.global_variables_initializer()
sess = tf.Session()
sess.run(init_op)
Возможно что-то изменилось в недавних сборках TensorFlow, потому что для меня, работая
sess = tf.Session()
sess.run(tf.local_variables_initializer())
прежде, чем соответствовать любым моделям, кажется, добивается цели. Большинство более старых примеров и комментариев, кажется, предлагают tf.global_variables_initializer()
.