准确率和错误率¶

准确率和错误率¶

准确率和错误率¶

参考:

eval.py

ImageNet Example Accuracy Calculation

Top k error calculation

定义¶

在分类任务中,最常用的评价指标是准确率(Accuracy)和错误率(Error Rate)

准确率¶

在分类任务中,计算准确率(accuracy)即是指计算Top-1正确率,也就是分类概率最高的类别等于标记类别的样本数除以样本总数,其计算公式如下:

Acc = \frac {TP + TN}{TP+FP+TN+FN}

错误率¶

错误率和准确率相对

Top-1错误率指的是分类概率最高的类别不等于标记类别的样本数除以样本总数

Top-5错误率指的是标记类别不在分类概率最高的前5个类别中的样本数除以样本总数

错误率的计算公式如下:

Err = \frac {FP + FN} {TP+FP+TN+FN}

所以推导如下:

Err = 1 - Acc

实现¶

关键函数¶

使用了几个关键PyTorch函数

topk

mul

topk¶

torch.topk(input, k, dim=None, largest=True, sorted=True, out=None) -> (Tensor, LongTensor)

从输入张量input中按指定维度返回前k个最大值

input:输入张量

k:前k个最大元素值

dim:指定维度

largest:默认为True,返回最大值;否则返回最小值

sorted:是否进行排序

其返回两个张量,第一个表示值,第二个表示下标

>>> import torch

>>> a = torch.randn(5)

>>> a

tensor([ 0.4377, 0.0466, -0.3709, -1.9199, -0.4040])

>>>

>>> a.topk(3)

torch.return_types.topk(

values=tensor([ 0.4377, 0.0466, -0.3709]),

indices=tensor([0, 1, 2]))

>>> b, d = a.topk(3)

>>> b

tensor([ 0.4377, 0.0466, -0.3709])

>>> d

tensor([0, 1, 2])

mul¶

torch.mul(input, other, out=None)

将输入张量input的每个元素与参数other相乘

out_{i} = other \times input_{i}

就是乘法操作

>>> d

tensor([0, 1, 2])

>>>

>>> d*0.1

tensor([0.0000, 0.1000, 0.2000])

>>>

>>> d.mul(0.1)

tensor([0.0000, 0.1000, 0.2000])

使用¶

实现文件:metrics/acc.py

测试文件:test_acc_err.py

相关推荐

jsp 如何导入一个java
365bet在线官网

jsp 如何导入一个java

12-28 👁️ 1836
网友爆料:Ashley爱室丽沙发怎么样?真的非常差吗?
腾讯手机管家推荐哪个好用 腾讯手机管家推荐