我的 CNN 输出一组值,我必须检查其中最大的值并将其作为预测类别。示例:
-148.7290802 , -133.90687561, -90.850914 , -135.78356934,
-128.6325531 , -125.76812744, -85.41909027, -72.3269577 ,
-103.51300812
对于类索引 6。
现在,我怎样才能对结果充满信心?
我的设置是:
predict_op = [tf.argmax(py_x,1), py_x]
cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(py_x, Y))
train_op = tf.train.RMSPropOptimizer(learningRate, decayRate).minimize(cost)
更新后的代码现在返回:[[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1. 0.]]
predict_op = tf.nn.softmax(py_x)
cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(py_x, Y))
train_op = tf.train.RMSPropOptimizer(learningRate, decayRate).minimize(cost)
请您参考如下方法:
在最后阶段应用softmax;这将在最后阶段产生后验概率。您已经在设置中使用了 softmax;只需在最终向量上使用它即可将其转换为 RMS 概率。该预测的置信度只是顶部项目的概率。
有关快速说明,请参阅 Wikipedia page在泛化和统计下。本节还描述了模型的整体置信度。
