深度学习笔记--top_k指标的计算

文章介绍了Top_K准确率的概念,如top_1、top_5和top_10,用于衡量分类模型的性能。并提供了一个使用Python和torch库计算Top_K准确率的代码示例,该示例通过对类别概率排序并检查真实类别是否在前K个预测类别中来评估预测准确性。
摘要由CSDN通过智能技术生成

1--top_k指标的定义

        常用的 top_k 指标有 top_1、top_5 和 top_10等;

top_1准确率:前1个概率最高的类别中,包括真实类别的准确率;

top_5准确率:前5个概率最高的类别中,包括真实类别的准确率;

top_10准确率:前10个概率最高的类别中,包括真实类别的准确率;

2--代码实现

import pickle
import pandas as pd
import torch

def top_k(score, label, top_k):
    # 对于每一个样本,从小到大排序其类别概率,并从小到大返回其索引值
    rank = score.argsort() 

    # for i, l in enumerate(label) 遍历返回样本 i 对应的真实标签值 l
    # l in rank[i, -top_k:] 判断 真实类别l 是否在前 k 个概率最大的类别中
    # 前k个概率最大的类别包含真实类别,视为预测正确,记为True
    # 前k个概率最大的类别不包含真实类别,视为预测错误,记为False
    hit_top_k = [l in rank[i, -top_k:] for i, l in enumerate(label)]

    # 统计预测正确的数目
    result = sum(hit_top_k) * 1.0 / len(hit_top_k)
    return result


if __name__ == "__main__":

    # score.shape: 样本数 × 类别数
    # label.shape: 样本数 × 1
    top_k(score, label, top_k = 5) # 计算top_5准确率

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值