2017-01-19 6 views
1

Почему этот простой код дает ошибку?FailedPreconditionError tensorflow

inputs = tf.Variable(np.random.rand(2,2)) 

tf.global_variables_initializer()  

with tf.Session() as sess: 
     sess.run(tf.reduce_mean(inputs)) 

Это дает мне:

FailedPreconditionError (see above for traceback): Attempting to use uninitialized value Variable_4 
[[Node: Variable_4/read = Identity[T=DT_DOUBLE, _class=["loc:@Variable_4"], _device="/job:localhost/replica:0/task:0/cpu:0"](Variable_4)]] 
+0

Я даже пробовал: 'tf.variables_initializer ([вход])' –

ответ

4

tf.global_variables_initializer() возвращает операцию, что вы должны выполнить. Эта операция, действительно, при инициализации глобальных переменных.

Поэтому изменить эту линию:

init_op = tf.global_variables_initializer() 

и в рамках сессии, выполнить его.

with tf.Session() as sess: 
    sess.run(init_op) 

Кроме того, логически лучше не смешивать определение графа и выполнение графика.

Определите график за пределами сеанса, затем выполните операции. Вот улучшенная версия вашего кода.

import tensorflow as tf 
import numpy as np 

inputs = tf.Variable(np.random.rand(2,2)) 
init_op = tf.global_variables_initializer()  

mean_op = tf.reduce_mean(inputs) 

with tf.Session() as sess: 
    sess.run(init_op) 
    mean_value = sess.run(mean_op) 
    print(mean_value) 

Кстати, я предлагаю вам чтения tensorflow начала работы страницы: https://www.tensorflow.org/get_started/

+0

@ nessuno..Thanks! –

Смежные вопросы