Python 意外的1.0000最高分类精度

Python 意外的1.0000最高分类精度,python,tensorflow,keras,Python,Tensorflow,Keras,我正在训练一个分类模型,得到一些奇怪的度量值。top1的准确度相当低,行为相对正常,但top_k_分类准确度(默认值为k=5)通常正好为1.0000。考虑到top1的准确度有多低,这似乎非常不可信。这可能是怎么回事?这是因为对于给定的示例,大多数类别的模型预测为0.00000000。Keras用于计算top\k\u分类精度度量。在文件中: 注意,InTopK的行为与TopKop在处理领带时的行为不同;如果多个类具有相同的预测值,并且跨越顶部k边界,则所有这些类都被视为位于顶部k中 因此,所有0的

我正在训练一个分类模型,得到一些奇怪的度量值。top1的准确度相当低,行为相对正常,但top_k_分类准确度(默认值为
k=5
)通常正好为1.0000。考虑到top1的准确度有多低,这似乎非常不可信。这可能是怎么回事?

这是因为对于给定的示例,大多数类别的模型预测为0.00000000。Keras用于计算
top\k\u分类精度
度量。在文件中:

注意,
InTopK
的行为与
TopK
op在处理领带时的行为不同;如果多个类具有相同的预测值,并且跨越顶部
k
边界,则所有这些类都被视为位于顶部
k

因此,所有0的预测都是并列的,只要4个或更少的预测为非零,则将作为前“5”的一部分计算。这意味着所有200个类都算作前5名,因此我们得到该度量的1.0000精度

相关GitHub问题: