TensorFlow获得单个预测的准确性

时间:2017-03-16 05:01:28

标签: python-3.x machine-learning tensorflow logistic-regression mnist

我使用TensorFlow和mnist数据集实现了逻辑回归模型。我想出如何使用以下代码获得学习算法的总精度......

correct_prediction = tf.equal(tf.argmax(pred, 1), tf.argmax(y, 1))

accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))
print("Accuracy:", accuracy.eval({x: mnist.test.images, y: mnist.test.labels}))

这很好,打印精度达到91%。现在我正在恢复模型并将单个图像传递到模型中以进行预测。我传递了一张7号的照片,mnist.test.images[0],它正确地预测了它 - > [7] ...

with tf.Session() as sess:
    saver.restore(sess, "/tmp/model.ckpt")
    x_in = np.expand_dims(mnist.test.images[0], axis=0)
    classification = sess.run(tf.argmax(pred, 1), feed_dict={x:x_in})
    print(classification)

现在我想获得与模型相关的预测的准确性,但我不确定如何继续,我尝试了以下哪些显然不起作用...

 accuracy = tf.reduce_mean(tf.cast(classification, tf.float32))
 print("Accuracy:", accuracy.eval({x: mnist.test.images, y: mnist.test.labels}))

此输出为Accuracy: 7.0

如果无法做出直截了当的回答,我会感谢为实现我想要的目标所需的一些步骤。

1 个答案:

答案 0 :(得分:0)

单一预测的准确性没有多大意义。

您将获得0%或100%。

但您仍然可以使用在图表中创建的精确度操作:

with tf.Session() as sess:
    saver.restore(sess, "/tmp/model.ckpt")
    x_in = np.expand_dims(mnist.test.images[0], axis=0)
    y_in = np.expand_dims(mnist.test.labels[0], axis=0)
    print("Accuracy:", accuracy.eval({x: x_in , y: y_in}))