首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何打印预测图像的置信度

如何打印预测图像的置信度
EN

Stack Overflow用户
提问于 2017-05-14 20:41:56
回答 1查看 1.1K关注 0票数 0

我训练了一个关于mnist数据集的logistic回归模型,这些是重要的变量.

代码语言:javascript
复制
# tf Graph Input
x = tf.placeholder(tf.float32, [None, 784]) # mnist data image of shape 28*28=784
y = tf.placeholder(tf.float32, [None, 10]) # 0-9 digits recognition => 10 classes

# set model weights
W = tf.Variable(tf.zeros([784, 10]))
b = tf.Variable(tf.zeros([10]))

# construct model
logits = tf.matmul(x, W) + b
pred = tf.nn.softmax(logits)  # Softmax

# minimize error using cross entropy
cost = tf.reduce_mean(-tf.reduce_sum(y * tf.log(pred), reduction_indices=1))

# Gradient Descent
optimizer = tf.train.GradientDescentOptimizer(FLAGS.learning_rate).minimize(cost)

现在我所做的就是创建一个名为adversarial的数组,该数组由稍微改变的图像组成,然后反馈到模型中,这样它就可以进行预测了。

如果我做下面的事..。

代码语言:javascript
复制
classification_adversarial = sess.run(tf.argmax(pred, 1), feed_dict={x:adversarial})
print(classification_adversarial)

>> [6, 6, 6, 6, 6, 6, 6, 6, 6, 6]

我得到了模型预测的结果。这是预期的输出,模型认为图像是6s。

无论如何,对于这些图像中的每一张,我都希望显示一个accuracy。所以,如果我给出一张像adversarial.reshape((1, 784))这样的图像,我想让模型告诉我它的预测有多准确,百分比有多大。

我试着用下面的方法来获得完全的准确性.

代码语言:javascript
复制
# list of booleans to determine the correct predictions
correct_prediction = tf.equal(tf.argmax(pred, 1), np.array([6]*10))
print(correct_prediction.eval({x:adversarial}))

>> [True, True ... , True, True]

accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))
print("Accuracy:", accuracy.eval({x: adversarial}))

>> Accuracy: 1.0

我得到了1.0的精确性。这是什么意思,我的模型是100%的准确性?如果是这样的话,我一定是做错了什么。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-14 20:51:04

  1. 要打印每个图像的可信度,您必须打印"pred“,这是logits的最大软件。
  2. 在你的例子中,只测量10幅图像的准确性,模型在所有10种情况下都是正确的。所以,准确度是1.0

这有道理吗??如果您需要更多信息,请发表评论。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43968615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档