Подтвердить что ты не робот

Создание прогнозов с помощью модели TensorFlow

Я следил за заданными учебниками mnist и смог обучить модель и оценить ее точность. Однако в учебных пособиях не показано, как делать прогнозы с учетом модели. Меня не интересует точность, я просто хочу использовать модель для прогнозирования нового примера, а на выходе - все результаты (метки), каждый со своим назначенным счетом (отсортированным или нет).

4b9b3361

Ответ 1

В примере Deep MNIST for Experts см. эту строку:

Теперь мы можем реализовать нашу модель регрессии. Это займет всего одну строчку! Мы умножьте векторизованные входные изображения x на весовую матрицу W, добавьте смещения b и вычислить вероятности мягкого макса, которые назначены каждый класс.

y = tf.nn.softmax(tf.matmul(x,W) + b)

Просто потяните на node y, и у вас будет то, что вы хотите.

feed_dict = {x: [your_image]}
classification = tf.run(y, feed_dict)
print classification

Это относится только к любой модели, которую вы создаете, - вы вычислили вероятности прогнозирования как один из последних шагов перед вычислением потери.

Ответ 2

Как было предложено в @dga, вам нужно запустить свой новый экземпляр данных, хотя вы уже предсказали модель.

Вот пример:

Предположим, вы отправились в первый учебник и вычислили точность своей модели (модель такова: y = tf.nn.softmax(tf.matmul(x, W) + b)). Теперь вы захватите свою модель и примените к ней новую точку данных. В следующем коде я вычисляю вектор, получая положение максимального значения. Покажите изображение и напечатайте это максимальное положение.

from matplotlib import pyplot as plt
from random import randint
num = randint(0, mnist.test.images.shape[0])
img = mnist.test.images[num]

classification = sess.run(tf.argmax(y, 1), feed_dict={x: [img]})
plt.imshow(img.reshape(28, 28), cmap=plt.cm.binary)
plt.show()
print 'NN predicted', classification[0]