Tensorboard mAP 分数都是 0,即使 loss 很低

Posted

技术标签:

【中文标题】Tensorboard mAP 分数都是 0,即使 loss 很低【英文标题】:Tensorboard mAP scores are all 0, even if the loss is low 【发布时间】:2018-10-31 07:14:42 【问题描述】:

我在自定义数据集上的 tensorflow 对象检测 API 上训练了一个 faster-rcnn 模型。我发现在 3.5k 步后损失约为 2。但是,当我运行 eval.py 时,mAP 分数几乎都是 0,如下所示。

我不明白为什么会这样。但是,当我查看 3.5k 步的图像时,模型已经捕获了一些框,如下所示

有人能解释一下为什么 mAP 分数接近于零,尽管模型已经学会了输出很多框吗?

【问题讨论】:

【参考方案1】:

图像显示的是每个类别的 AP@0.5IOU 分数,而不是 mAP。正如您在 PerformanceByCategory 中看到的那样,它会在您的案例中获得每个类别的分数,它显示“遮阳篷三轮车”、“自行车”、“公共汽车”、“汽车”、“忽略的区域”等...

在图像输出中,检测到的类别(例如“汽车”、“电机”、“行人”)显示的 AP 分数偏离零,而其余类别的 AP 分数为零。这意味着模型仍然没有在测试图像中找到相应的类别。

这可能是由于您的实验中存在许多变量。以下是您可以问自己的一些问题。 您为每个类别分发了多少张训练图像?每个类别的训练图像的比例应该或多或少相等,每个类别的测试图像也是如此。如果有更多的汽车和行人训练图像,则模型更有可能拾取汽车和行人物体,因此它们的 AP 分数不为零,而自行车的 AP 分数为零。

【讨论】:

以上是关于Tensorboard mAP 分数都是 0,即使 loss 很低的主要内容,如果未能解决你的问题,请参考以下文章

f1分数,map,recall,precision怎么计算

Tensorboard - 分析计算时间 - 运行时统计中的一切都是“未使用的子结构”

即使我们将正分数放入双重类型[重复],符号位为1的原因

文本二进制分类训练期间的波动损失

编号0-999的学生,为每位学生随机生成考试成绩(0-100分),找出10个最好成绩,学生获得相同分数最多的5个分数,并列出获得这几个分数的学生编号清单。

TensorBoard在谷歌浏览器显示找不到网页