精度为1.0,但仍有一些损失

时间:2019-01-12 16:07:03

标签: tensorflow

我想知道为什么即使在精度达到100%的情况下,在第3个时期之后仍然会有一些损失?

Epoch 1/5 1000/1000 [====================]-3s 3ms /步-损耗:0.1170-acc:0.5384

Epoch 2/5 1000/1000 [====================]-3s 3ms /步-损耗:0.0626-acc:0.8353

Epoch 3/5 1000/1000 [====================]-3s 3ms /步-损耗:0.0351-acc:0.9432

Epoch 4/5 1000/1000 [====================]-3s 3ms /步-损耗:0.0193-acc:1.0000

Epoch 5/5 1000/1000 [====================]-3s 3ms /步-损耗:0.0146-acc:1.0000

1 个答案:

答案 0 :(得分:1)

为清楚起见,让我们看看如何计算准确性和损失。假设您要对MNIST数据进行数字识别。在输出层中,您有一个softmax层,该层为每个标签提供了概率。假设输入图像为0,网络的输出预测类似于[0.99, 0.002, 0.001, ...., 0.001]

当我们要计算准确性时,我们在此概率列表中使用最大值,这意味着我们选择第一个索引作为正确的标签。但是,为了计算损失,我们使用MSE之类的函数来测量每个标签的分类错误。对于上面的示例,我们的地面真相标签为[1, 0, 0, ..., 0]。通过在我们的真实情况和网络预测之间计算MSE,仍然很少。结果,损失不为零。

enter image description here