【新手向】keras如何计算top5

keras中,如何计算top5

1. 什么是top5

top5 的全称应该是top5 accuracy。
它一般是用于多分类问题中的,假定有10个类,那网络最终会给出10个值,分别代表样例是对应类的几率,最终将几率按从大到小排序。
我们一般认为,样例对应的类的几率最大,则认为网络对该样例的分类是正确的,即val_acc,亦可以叫做top1。
而top5 accuracy则放宽了要求,如果 网络对该样例的分类是排在前5个几率之内,就认为分类是正确的。
top1和top5都是评估模型的一个准则,往往关注top5,可以帮助我们更加清楚的了解模型的性能

2. keras中如何计算top5

keras中已集成了top_k_categorical_accuracy函数用于计算top5,通过修改参数也可以查看top2,top3,top4等。
我们可以在编译模型时,通过定义监控的量来实时的检测top5。

注意,top_k_categorical_accuracy的默认参数为5。

代码实现:

from keras.metrics import top_k_categorical_accuracy


def acc_top2(y_true, y_pred):
    return top_k_categorical_accuracy(y_true, y_pred, k=2)
    
def acc_top3(y_true, y_pred):
    return top_k_categorical_accuracy(y_true, y_pred, k=3)

def acc_top4(y_true, y_pred):
    return top_k_categorical_accuracy(y_true, y_pred, k=4)

def acc_top5(y_true, y_pred):
    return top_k_categorical_accuracy(y_true, y_pred, k=5)


# 编译模型
model.compile(loss='categorical_crossentropy',
              optimizer=optimizers.RMSprop(lr=1e-3),
              metrics=['acc', acc_top2, acc_top3, acc_top4, acc_top5])

好的,基本就是这些

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值