AP和mAP 计算:sklearn.metrics.average_precision_score()

sklearn.metrics.average_precision_score(y_true, y_score, average=‘macro’, sample_weight=None)
注意:此实现仅限于二进制分类任务或多标签分类任务。

参数:
y_true : array, shape = [n_samples] or [n_samples, n_classes]
真实标签:取0和1
y_score : array, shape = [n_samples] or [n_samples, n_classes]
预测标签:[0,1]之间的值。 可以是正类的概率估计、置信值,也可以是决策的非阈值度量(如某些分类器上的“决策函数”返回的)
average : string, [None, ‘micro’, ‘macro’ (default), ‘samples’, ‘weighted’]
sample_weight : array-like of shape = [n_samples], optional sample weights.
#------------------------------------------------------------

AP和mAP 的计算:

def compute_mAP(labels,outputs):
    y_true = labels.cpu().detach().numpy()
    y_pred = outputs.cpu().detach().numpy()
    AP = []
    for i in range(y_true.shape[0]):
        AP.append(average_precision_score(y_true[i],y_pred[i]))
    return np.mean(AP)

参考链接:https://www.w3cschool.cn/doc_scikit_learn/scikit_learn-modules-generated-sklearn-metrics-average_precision_score.html
参考链接:https://github.com/lyz04551/voc2007_classification_pytorch/blob/master/PascalTrain.py

你可能感兴趣的:(python,深度学习)