用TensorFlow模型进行预测
我遵循给定的mnist教程,并能够训练模型并评估其准确性。 然而,这些教程并没有展示如何根据模型进行预测。 我对准确度不感兴趣,我只是想使用模型来预测一个新的例子,并在输出中看到所有的结果(标签),每个结果(分配或不分类)。
在“ Deep MNIST for Experts ”示例中,请参阅以下行:
我们现在可以实现我们的回归模型。 只需要一行! 我们将向量化的input图像x乘以权重matrixW,加上偏差b,并计算分配给每个类别的softmax概率。
y = tf.nn.softmax(tf.matmul(x,W) + b)
只要拉节点y,你就会得到你想要的。
feed_dict = {x: [your_image]} classification = tf.run(y, feed_dict) print classification
这适用于您创build的任何模型 – 您将计算预测概率作为计算损失之前的最后一个步骤之一。
正如@dga所build议的那样,您需要通过已经预测的模型来运行新的数据实例。
这里是一个例子:
假设你去了第一篇教程,并计算了模型的准确性(模型是这样的: y = tf.nn.softmax(tf.matmul(x, W) + b)
)。 现在你抓住你的模型,并将新的数据点应用到它。 在下面的代码中,我计算vector,得到最大值的位置。 显示图像并打印最大位置。
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]