张量流中的平均精度(mAP)

时间:2017-04-07 20:32:31

标签: python tensorflow

我需要使用 Tensorflow 计算此question对象检测中描述的 mAP

平均精度(AP)是用于排名集的典型性能指标。 AveragePrecision定义为范围S中每个真阳性TP后的精度得分的平均值。给定范围S = 7,排序列表(增益矢量)G = [1,1,0,1,1,0 ,0,1,1,0,1,0,0,..]   其中1/0分别表示与相关/非相关项目相关的收益:

AP =(1/1 + 2/2 + 3/4 + 4/5)/ 4 = 0.8875。

平均平均精度(mAP):一组查询的平均精度值的平均值。

我得到了5个 One-Hot 张量的预测:

$self

其中单个预测张量具有此结构(例如prediction_A):

prediction_A 
prediction_B
prediction_C 
prediction_D 
prediction_E 

然后我得到了正确的标签(单热)张量,结构相同:

00100
01000
00001
00010
00010

我想使用 tensorflow 计算 mAP ,因为我想总结一下,我该怎么做?

我发现了这个function,但我无法使用它,因为我有一个多维向量。

我还编写了一个计算 AP 的python函数,但它没有使用Tensorflow

y_A
y_B
y_C
y_D
y_E

1 个答案:

答案 0 :(得分:2)

我想你可能需要这个:

tf.metrics.average_precision_at_k

此方法采用标签和预测来计算您提到的AP @ K

以下是引用的链接

  

https://www.tensorflow.org/api_docs/python/tf/metrics/average_precision_at_k

     

实现了此处定义的AP @ K指标:

     

https://en.wikipedia.org/wiki/Evaluation_measures_(information_retrieval)#Average_precision

     顺便说一句,如果您需要Tensorflow中的指标,首先您应该在其官方文档中搜索。以下是所有已实施指标的列表

     

https://www.tensorflow.org/api_docs/python/tf/metrics

欢呼声