2016-01-07 5 views
0

Я прошел через элементарный пример в Tensorflow для оценки обученной модели. Вот что он говорит:Tensorflow Начальники MNIST нуждаются в некотором понимании шаг оценки

accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float")) 
print(sess.run(accuracy, feed_dict={x: mnist.test.images, y_: mnist.test.labels})) 

Я не придерживался этого кода, где обученная «модель»? или это tf.reduce_mean (....)? проверка подготовленной модели.

+1

задать свой вопрос четко, очистить свой формат. Узнайте, как задавать вопросы. Ваш вопрос не имеет большого смысла. –

+0

Мне интересно узнать TensorFlow, но я знал, что мне не хватает базового словарного запаса и концепций для чего-то большего, чем запускать примеры, когда я начал. Итак, чтобы получить основы, я обратился к [Neural Networks and Deep Learning] (http://neuralnetworksanddeeplearning.com/) и [видео курса Andrew Ng] (https://www.youtube.com/watch?v = UzxYlbK2c7E) –

ответ

4

Как говорит Гай Кодер, возможно, вам стоит проверить другие онлайн-ресурсы или MOOC перед тем, как начать с тензорного потока.

Но в любом случае, может быть, вы получите более четкую картину с этим ...

Есть две части в обучение модели в tensorflow.

  1. Сначала вы объявляете структуру своей модели с различными слоями и переменными. Tensorflow выведет график из этого, но пока не происходит никаких вычислений.
  2. Затем вы попросите tenorflow «запустить» и оптимизировать модель. То, что вы здесь делаете, это сказать тензорпотоку, что вы хотите уменьшить кросс-энтропию или любую функцию потерь, которую вы определяете, поэтому вы предоставляете входные данные и метки, которые граф должен вычислить.

После этого вы приступаете к обученной модели. Возможно, вам захочется сохранить модель и повторно использовать ее позже, но это уже другая история.

Итак, во время обучения или после его завершения вы можете позвонить по телефону
print(sess.run(accuracy, feed_dict={x: mnist.test.images, y_: mnist.test.labels})).

Это говорит о тензорном потоке для вычисления точности с использованием графика с текущим значением переменных (возможно, вы находитесь в середине обучения). И вы кормите эту функцию точности изображениями и ярлыками. Tensorflow примет значения x и попытается предсказать y_, и точность будет результатом того, насколько хорошо он это сделал.

Подключение к вашей обученной модели происходит от функции correct_prediction который должен сравнить правильный вывод с предсказанием вашей модели, то есть Y_ против у

Надеется, что это помогает

EDIT

Я отвечу на основании ваших комментариев, но имейте в виду, что ваш вопрос очень плохо объяснен ... как указано S_kar

Чтобы сохранить модель вы делаете это так:

# model declared before this line 
with tf.Session() as sess: 
    # Merge all the summaries and write them out to /tmp/tf 
    merged = tf.merge_all_summaries() 
    writer = tf.train.SummaryWriter("/tmp/tf", sess.graph_def) 
    tf.initialize_all_variables().run() 

    saver = tf.train.Saver() 

    """ 
    train the model... 
    """ 

    print "Model succesfuly trained" 

    # now save the model in a subdirectory called "model" 
    checkpoint_path = os.getcwd() + "/model/model.ckpt" 
    saver.save(sess, checkpoint_path) 
    print "Model saved" 

Чтобы восстановить модель смотреть в this question

+0

Я следил за полным примером MNIST, как это работает, но из того, как я вижу, мы получаем данные, создаем модель, моделируем модель и тестируем модель. \t Точка, где находится этот объект модели в TensorFlow, как его сохранить и использовать в приложении, какой объект является обученной моделью? – Integration

+0

Как сохранить и использовать модель Tensorflow? – Integration

+0

Хорошо, я добавлю эту информацию в качестве редактирования. – mathetes