如何使用张量流在 CNN 中实现置信度?

Del*_*ein 3 python neural-network conv-neural-network tensorflow

我的 CNN 输出一组值,我必须检查最大的值并将其作为预测类。例子:

-148.7290802 , -133.90687561,  -90.850914  , -135.78356934,
    -128.6325531 , -125.76812744,  -85.41909027,  -72.3269577 ,
    -103.51300812
Run Code Online (Sandbox Code Playgroud)

对于类索引 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) 
Run Code Online (Sandbox Code Playgroud)

更新的代码现在返回:[[ 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) 
Run Code Online (Sandbox Code Playgroud)

Pru*_*une 6

最后阶段应用softmax;这将在最后阶段产生后验概率。您已经在设置中使用了 softmax;只需在最终向量上使用它即可将其转换为 RMS 概率。该预测的置信度只是顶部项目的概率。

对于一个快速说明,请参见维基百科页面推广和统计。本节还描述了模型整体的置信度。