我按照给定的mnist教程,能够训练模型并评估其准确性.但是,教程没有说明如何在给定模型的情况下进行预测.我对准确性不感兴趣,我只想使用模型来预测一个新的例子,并在输出中查看所有结果(标签),每个结果都有指定的分数(已分类或未分类).
dga*_*dga 71
在" Deep MNIST for Experts "示例中,请参阅以下行:
我们现在可以实现我们的回归模型.它只需要一行!我们将矢量化输入图像x乘以权重矩阵W,加上偏差b,并计算分配给每个类的softmax概率.
Run Code Online (Sandbox Code Playgroud)y = tf.nn.softmax(tf.matmul(x,W) + b)
只需拉动节点y就可以得到你想要的东西.
feed_dict = {x: [your_image]}
classification = tf.run(y, feed_dict)
print classification
Run Code Online (Sandbox Code Playgroud)
这几乎适用于您创建的任何模型 - 您将计算预测概率作为计算损失之前的最后步骤之一.
Sal*_*ali 16
正如@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]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
80711 次 |
| 最近记录: |