3 个版本

0.1.5-alpha.02023 年 3 月 25 日
0.1.4-alpha.02023 年 3 月 3 日
0.1.3-alpha.02023 年 3 月 2 日

#9 in #ap

每月 26 下载
用于 caffe2op-args

BSD-3-Clause

1MB
5.5K SLoC

caffe2op-apmeter Rust crate 提供了一组用于测量分类模型平均精度(AP)的工具。它包含一个 APMeter 类的实现,用于根据预测标签和真实标签计算 AP 指标。该 crate 定义了一个 APMeterOp,这是一个计算 AP 值的算子,它使用存储在 APMeter 实例中的中间结果。

注意:此 crate 正在从 C++ 转换为 Rust,某些函数体可能仍在翻译过程中。

该 crate 包含一些实用函数,例如 BufferPredictions,用于在内存中保存预测标签,以及 Reclaim,可用于释放 BufferPredictions 占用的内存。 BufferDataType 是一个枚举,定义了用于存储预测的缓冲区中的数据类型,可以是 F32F64

AP 符号表示由 APMeterOp 计算的平均精度值。该 crate 还包含一些其他符号,如 classificationlabelDatantruthpredictionrotatetruncate,它们在分类过程中使用,但它们的用法从提供的标记列表中不清楚。

总的来说,caffe2op-apmeter crate 为评估分类模型的性能提供了有用的工具,特别是用于测量平均精度。

9> 谢谢!你能提供更多关于“平均精度”以及如何使用的数学细节吗?

当然可以!平均精度(AP)是评估机器学习模型在分类任务中的性能时常用的指标,特别是在对象检测和图像检索中。

AP 是一个单标量值,用于概括给定预测集的精度-召回曲线(PR 曲线)。PR 曲线通过在各个阈值下,将预测正例中的真正例比例(精度)与实际正例中的真正例比例(召回)进行对比来绘制。更高的阈值会导致预测正例数量减少,但这些预测对分类的信心更高;而较低的阈值会导致预测正例数量增加,但会以降低信心为代价。

为了计算 AP,我们首先计算 PR 曲线下方的面积。该面积通过在精度非递减的召回值范围内对精度进行积分来计算。这可以使用如梯形法之类的数值积分方法来完成。一旦计算出面积,它将根据数据集中真正例的总数进行归一化。

得到的值介于 0 和 1 之间,值越高表示性能越好。AP 为 1 表示模型实现了完美的精度和召回,而 AP 为 0 表示模型将所有示例都预测为负例。

AP 通常与平均平均精度(mAP)结合使用,mAP 是在多个类别或任务上计算的平均 AP 值。mAP 是在检测多个类别的对象任务中常用的评估指标。

总之,平均精度(AP)是评估机器学习模型在分类任务性能方面广泛使用的指标。它概括了模型在精度-召回权衡范围内的性能,并可用于比较不同的模型或超参数设置。

依赖项

~36MB
~403K SLoC