Restauración del modelo guardado de TensorFlow para evaluar en el conjunto de prueba

He visto algunospublicaciones en la restauraciónTF modelos y elGoogle doc página enexportando gráficos Pero creo que me falta algo.

Yo uso el código en esteEsencia para guardar el modelo junto con este archivo de utilidades en el quedefine el modelo

Ahora me gustaría restaurarlo y ejecutar datos de prueba nunca vistos anteriormente de la siguiente manera:

def evaluate(X_data, y_data):
    num_examples = len(X_data)
    total_accuracy = 0
    total_loss = 0
    sess = tf.get_default_session()
    acc_steps = len(X_data) // BATCH_SIZE
    for i in range(acc_steps):
        batch_x, batch_y = next_batch(X_val, Y_val, BATCH_SIZE)

        loss, accuracy = sess.run([loss_value, acc], feed_dict={
                images_placeholder: batch_x,
                labels_placeholder: batch_y,
                keep_prob: 0.5
                })
        total_accuracy += (accuracy * len(batch_x))
        total_loss += (loss * len(batch_x))
    return (total_accuracy / num_examples, total_loss / num_examples)

## re-execute the code that defines the model

# Image Tensor
images_placeholder = tf.placeholder(tf.float32, shape=[None, 32, 32, 3], name='x')

gray = tf.image.rgb_to_grayscale(images_placeholder, name='gray')

gray /= 255.

# Label Tensor
labels_placeholder = tf.placeholder(tf.float32, shape=(None, 43), name='y')

# dropout Tensor
keep_prob = tf.placeholder(tf.float32, name='drop')

# construct model
logits = inference(gray, keep_prob)

# calculate loss
loss_value = loss(logits, labels_placeholder)

# training
train_op = training(loss_value, 0.001)

# accuracy
acc = accuracy(logits, labels_placeholder)

with tf.Session() as sess:
    loader = tf.train.import_meta_graph('gtsd.meta')
    loader.restore(sess, tf.train.latest_checkpoint('./'))
    sess.run(tf.initialize_all_variables())   
    test_accuracy = evaluate(X_test, y_test)
    print("Test Accuracy = {:.3f}".format(test_accuracy[0]))

Estoy obteniendo una precisión de prueba de solo3%. Sin embargo, si no cierro el Notebook y ejecuto el código de prueba inmediatamente después de entrenar el modelo, obtengo un95% exactitud.

¿Esto me lleva a creer que no estoy cargando el modelo correctamente?

Respuestas a la pregunta(3)

Su respuesta a la pregunta