Computer vision 如何打印每个类';使用Mxnet快速RCNN进行目标检测时的平均精度
我在自己的数据集上使用更快的rcnn(mxnet)进行对象检测,该数据集有9个类(包括背景)。然而,我发现最终它只打印出了培训过程中所有9个班级的平均准确度。此外,在测试过程中,它也只打印出所有9个类的平均精度和召回率。我想知道如何在培训过程中打印出每门课的准确度,以及在测试过程中打印出每门课的召回率和准确度? 或者有人能告诉我,我应该在哪里实现我的目标?Computer vision 如何打印每个类';使用Mxnet快速RCNN进行目标检测时的平均精度,computer-vision,deep-learning,object-detection,mxnet,Computer Vision,Deep Learning,Object Detection,Mxnet,我在自己的数据集上使用更快的rcnn(mxnet)进行对象检测,该数据集有9个类(包括背景)。然而,我发现最终它只打印出了培训过程中所有9个班级的平均准确度。此外,在测试过程中,它也只打印出所有9个类的平均精度和召回率。我想知道如何在培训过程中打印出每门课的准确度,以及在测试过程中打印出每门课的召回率和准确度? 或者有人能告诉我,我应该在哪里实现我的目标? 图中会显示一个理想的示例 您可以使用Scikit学习功能sklearn.metrics.precision_recall_fscore_su
图中会显示一个理想的示例 您可以使用Scikit学习功能
sklearn.metrics.precision_recall_fscore_support¨
。和sklearn.metrics.classification\u报告
,用于美化版本
在测试时,您将有一个真值数组(Y\u真
)和每个类的预测概率数组(Y\u prob
)。使用这些方法如下
Y_pred = np.argmax(Y_prob, axis=1)
print(classification_report(Y_true, Y_pred))
precision recall f1-score support
class 0 0.50 1.00 0.67 1
class 1 0.00 0.00 0.00 1
class 2 1.00 0.67 0.80 3
avg / total 0.70 0.60 0.61 5
在培训时,每N批列出一次,需要稍微多做一些工作。如果您使用的是module.fit
方法,则可以设置回调参数和自定义eval\u度量
model = mx.mod.Module(symbol=...)
model.fit(..., batch_end_callback = mx.callback.Speedometer(batch_size),
eval_metric=custom_metric, ...)
您需要为custom\u metric
创建一个新类,该类扩展了mxnet.metric.EvalMetric
,并实现了一个get
方法,该方法打印(甚至返回)每个类的度量