Я следил за заданными учебниками mnist и смог обучить модель и оценить ее точность. Однако в учебных пособиях не показано, как делать прогнозы с учетом модели. Меня не интересует точность, я просто хочу использовать модель для прогнозирования нового примера, а на выходе - все результаты (метки), каждый со своим назначенным счетом (отсортированным или нет).
Создание прогнозов с помощью модели TensorFlow
Ответ 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]