我使用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
如果无法做出直截了当的回答,我会感谢为实现我想要的目标所需的一些步骤。
答案 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}))