以下是我用于预测特定mnist图像的代码,如何获得预测完成的准确度?
_pre是logits
_x = loaded_graph.get_tensor_by_name('x:0')
_y = loaded_graph.get_tensor_by_name('y:0')
_pre = loaded_graph.get_tensor_by_name('prediction:0')
p = tf.argmax(_pre, 1)
i = imageprepare('./image.png')
print(p.eval(feed_dict={_x: [i]}))
答案 0 :(得分:2)
我假设“准确度”意味着“分配给所选标签的概率”。从您的代码中不清楚_pre
是如何创建的。如果它由概率向量组成(即,softmax
已经应用),那么您可以获得如下准确度:
acc=tf.reduce_max(_pre, 1)
print(acc.eval(feed_dict={_x: [i]}))
原因是p
是最大概率的位置,而准确性(在这种情况下为acc
)是最大概率本身。
如果_pre
由logits向量组成(即,如果在softmax
上应用_pre
将给出概率向量),
然后这将完成这项工作:
acc=tf.reduce_max(tf.nn.softmax(_pre), 1)
print(acc.eval(feed_dict={_x: [i]}))