美文网首页
tensorflow 通过预测值和样本值计算topK的准确度

tensorflow 通过预测值和样本值计算topK的准确度

作者: lifefruity | 来源:发表于2020-02-20 22:20 被阅读0次

例子说明:
有10个样本,每个样本有6种类型的预测值,可以认为是有十行六列的matrix,里面的值代表各个分类的百分比,比如某个样本[0, 0, 0.2, 0.6, 0.1, 0.1],那边代表3的概率为60%(0.6的索引值为3),实际的预测值为2。经过排序后为[0.6, 0.2, 0.1, 0.1, 0 , 0]对应的index也就是预测值为[3,2,4,5,0,1],那么top1的概率为0/1=0(前1个里没有2),top2的概率为1/1=100%(前2个中有2)。

def accuracy(output, target, topk):
    eachProb = tf.argsort(output, direction='DESCENDING') #这里指每个样本0-5的概率,最大概率的排在前面。
    eachTop = tf.transpose(eachProb, perm=[1, 0])#转置一下,变成shape为[6,10] 第一行代表top1的预测,第一 二行代表top2的预测(在第一 二中满足一个就算预测对了)
    batch_size = target.shape[0]

    target_ = tf.broadcast_to(target, eachTop.shape)
    #print(eachTop)
    #print(target_)

    correct = tf.equal(eachTop, target_)
    #print(correct)

    correctNum = tf.cast(correct, dtype=tf.int32)
    print(correctNum)

    res = []
    for i in topk:
        topIRows = correctNum[:i]
        sum = tf.reduce_sum(topIRows)
        res.append(float(sum.numpy() * (100.0 / batch_size) ))#float32 和 int32是不能做乘法的
    return res

output = tf.random.normal([10, 6])#10个样本,每个样本有6个分类(可以认为是0-5的数值)
output = tf.math.softmax(output, axis=1)
target = tf.random.uniform([10], maxval=6, dtype=tf.int32)

acc = accuracy(output, target, (1,2,3,4,5,6))#第三个参数指top1,top2...top6的概率,有一个对就算对了
print(acc)

相关文章

  • tensorflow 通过预测值和样本值计算topK的准确度

    例子说明:有10个样本,每个样本有6种类型的预测值,可以认为是有十行六列的matrix,里面的值代表各个分类的百分...

  • 回归模型常用评价指标

    样本误差:衡量模型在一个样本上的预测准确性样本误差 = 样本预测值 - 样本实际值 最常用的评价指标:均误差方(M...

  • tensorflow2线性回归(二)

    数学原理 线性回归试图学得: 使得: 其中,是样本特征值,是样本标签值,是模型预测值。 如何学得w和b呢?均方差(...

  • 视觉任务中常见的评价指标(一)

    1 分类任务 (注:以下仅讨论二分类的情况)针对预测值和实际值之间的关系,可以将样本的预测值分成: 真正例(Tru...

  • tensorflow 简单的结构

    目的:根据预测值和实际值的误差,训练。不断地修正参数。 程序如下: #导入 import tensorflow a...

  • 损失函数与鲁棒性

    损失函数 机器学习模型关于单个样本的预测值与真实值的差称为损失。损失越小,模型越好,如果预测值与真实值相等,就是没...

  • reportROC包绘制ROC曲线、计算约登指数及各种度

    reportROC包可以通过一行代码绘制ROC曲线及计算敏感性、特异性、准确率、阳性预测值,阴性预测值,AUC值及...

  • 深度学习02-激活函数和成本损失函数

    损失函数: 机器学习中单个样本的预测值与真实值的差称为损失,失越小,模型越好,如果预测值与真实值相等,就是没有损失...

  • 盘点机器学习中那些神奇的损失函数

    原文链接 损失函数:损失函数是用来衡量模型的性能的,通过预测值和真实值之间的一些计算,得出的一个值,这个值在模型拟...

  • ML

    2.模型评估和选择 2-1. 经验误差和过拟合 训练误差/经验误差: 学习器在训练样本的上的实际预测值与样本实际值...

网友评论

      本文标题:tensorflow 通过预测值和样本值计算topK的准确度

      本文链接:https://www.haomeiwen.com/subject/xowfqhtx.html