然而,最近几乎所有在ImageNet数据集上评估的机器学习模型的论文都不仅给出了rank-1准确度,还给出了rank-5准确度。 顾名思义,rank-5准确度选取5个最大概率的类别,只要这5个类别中的一个和真实标签相同,该预测结果就为真。rank-5准确度的计算方法如下: 步骤#1:计算数据集中每个输入图像的类别标签的概率。 rank-1和rank-5的代码实现也非常简单: def rank5_accuracy(preds, labels): # initialize the rank-1 and rank-5 accuracies 所以在某些大型图片分类模型任务中,rank-5准确率可以提供一个对rank-1准确率的一个补充。 理想情况下,rank-1准确度将与rank-5准确度同步增加,但是在具有挑战性的数据集上,情况并非总是如此。
上图中第一行第一个样本,第一个就击中了,所以它是rank-1击中;第二行第二个样本,它前3都未击中,第四个击中了,它属于前5击中,包括rank-1在那,所以是rank-5击中;第四和第五行都没有前五击中 这样下来rank-1的概率就为40%,rank-5的概率就为60%,rank-10的概率就是100%。 而Probe2在rank-2、rank-5、rank-7被击中,由于Probe1有rank-1的,Probe2只有rank-2的,是否说明Prob1比Prob2好呢?答案是不一定的。
The base model achieves mAP of 64.48, with rank-1 63.9% and rank-5 86.2% after training for 100 epochs
") model = LogisticRegression(random_state=seed) model.fit(trainData, trainLabels) # use rank-1 and rank np.argsort(predictions)[::-1][:5] # rank-1 prediction increment if label == predictions[0]: rank_1 += 1 # rank testLabels))) * 100 # write the accuracies to file f.write("Rank-1: {:.2f}%\n".format(rank_1)) f.write("Rank
再从数据上看一眼融合的模型有多强: 源数据集 目标数据集 纯 图像 结果 融合 时空 结果 rank-1 rank-5 rank-10 rank-1 rank-5 rank-10 CUHK01 Learning to Rank效果 源数据集 目标数据集 纯 图像 结果 融合 时空 结果 rank-1 rank-5 rank-10 rank-1 rank-5 rank-10 CUHK01
往期回顾 站在巨人的肩膀上:迁移学习 聊一聊rank-1和rank-5准确度 使用数据增强技术提升模型泛化能力
往期回顾 再谈迁移学习:微调网络 站在巨人的肩膀上:迁移学习 聊一聊rank-1和rank-5准确度 使用数据增强技术提升模型泛化能力
作者还测试了CLFace在TinyFace数据集 [3] 上,在低质量、野外图像上的性能,使用Rank-5指标。
model.predict(img) P = imagenet_utils.decode_predictions(preds) # loop over the predictions and display the rank