Оценка тензорного скалярного повышения ValueError Tensorflow - PullRequest
0 голосов
/ 28 августа 2018

Я пишу довольно сложную модель / программу Tensorflow, и она, кажется, работает для моих целей, как и предполагалось. Однако сейчас я нахожусь в процессе изменения моей модели для приема данных динамической формы, и вот здесь я сталкиваюсь с проблемами. В основном мои проблемы сводятся к следующему коду (который не работает на TF 1.3):

def foo():
    # !!! Here is where we get the error !!!
    myVar = myVar_t.eval()

    # Now myVar should be an int
    # In this example it should be 38
    return myVar

# Placeholder Scalar Tensor
myVar_t = tf.placeholder(tf.int32)

# Something to call foo()
result = foo()

# Initialize global variables
init = tf.global_variables_initializer()

# Get the session
sess = tf.Session()

# Set it as default so eval() (in theory) will work
with sess.as_default():

    # Run the global variables initializer
    sess.run(init)

    # Following should feed 38 into placeholder and then get result
    out = sess.run([result], feed_dict={myVar_t: 38})

    # Should print 38
    print(out)

Здесь, как вы уже догадались, я получаю ValueError("Cannot evaluate tensor using 'eval()': No default session is registered. Я нашел этот связанный вопрос, и хотя ответ на этот вопрос действительно дает действительный код, я не могу адаптировать его для «соответствия» 'мой код Я думаю, что ошибка связана с тем, что я звоню sess.run() дважды, но в моем реальном коде мне нужно это сделать.

Я попытался переставить такие вещи, как помещение инициализации заполнителя в блок with, но затем программа жалуется на InvalidArgumentError: You must feed a value for placeholder tensor, на который я нашел этот соответствующий вопрос, но опять же я не смог понять что не так с этим.

Я также пытался явно указать сеанс при вызове eval(), как я это делаю eval(session=sess), но это, похоже, не помогает.

Я уверен, что это где-то просто небольшая ошибка, но эта маленькая вещь заняла у меня больше времени, чем я хочу признать. Спасибо за любую помощь, спасибо.

...