Skip to main content
 首页 » 编程设计

python之如何在带有 tensorflow 的 CNN 中实现置信度

2024年08月22日32傻小

我的 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在泛化和统计下。本节还描述了模型的整体置信度。