[目标检测][目标识别]模型性能测试

参考:CNN 模型所需的计算力(flops)和参数(parameters)数量是怎么计算的?

在目标检测和目标识别任务中,常用以下几种评价标准:

  1. 参数数目
  2. FLOPs
  3. FPS
  4. Accuracy/Error Rate
  5. mAP

结合PyTorch完成了相关评价标准的实现:zjZSTU/Evaluation-Metrics

相关实现文档,可参考:Evaluation-Metrics

参数数目

计算参数数目有助于衡量模型所需内存。为了更直观的理解模型大小,通常利用参数数目进一步计算模型大小(单位为MB

  • 通常使用32位浮点数,所以需要乘以4字节

FLOPs

FLOPS ? FLOPs !

参考:

FLOPS

What is FLOPS in field of deep learning?

  • FLOPS:Floating-Point Operations Per Second,每秒所执行的浮点运算次数。常被用于估算电脑的执行能力
  • FLOPs:Floating Point Of Operations,浮点运算次数。常被用来衡量算法/模型复杂度

常用GFLOPs衡量算法性能,其表示十亿(=10^9)次的浮点运算

计算

参考:Counting FLOPS in PyTorch using CPU PMU counters

关于FLOPs的计算公式,参考深度学习中FLOPs的计算公式具体在哪篇论文里有提到?

FPS

FPS指的是模型每秒运行帧数。它和FLOPs都是关于模型计算速度的评价标准,不过由于FLOPs是一个估算值,同时其计算同样依赖于具体的硬件设备,所以相对而言,FPS更能够体现模型计算速度

Accuracy/Error Rate

  • Accuracy指的是Top-1 Correct Rate,即标注类别等于分类概率最大的预测类别的样本数除以样本总数
  • Error Rate和正确率相反,其计算标注类别不在前$k$个分类概率最大的预测类别的样本数除以样本总数。在论文中最常使用的就是Top-1/Top-5错误率(个人直觉是因为看起来更加收敛

mAP

mAP(mean average precision)是目标检测任务中最常使用的评价标准,通过计算PR曲线面积来评估算法性能

不同的数据集提供了不同的mAP计算公式,其中最常使用的PASCAL VOC数据集提供的mAP计算。其实现参考:[目标检测][PASCAL VOC]mAP

坚持原创技术分享,您的支持将鼓励我继续创作!