【问题标题】:When should I stop the object detection model training while mAP are not stable?在 mAP 不稳定的情况下,我应该何时停止目标检测模型训练?
【发布时间】:2019-11-29 07:56:34
【问题描述】:

我正在使用来自 Berkeley Deep Drive 数据集的 900 张图像重新训练 SSD MobileNet,并对来自该数据集的 100 张图像进行评估。

问题是经过大约 24 小时的训练,totalloss 似乎无法低于 2.0:

而且对应的mAP分数相当不稳定:

事实上,我实际上已经尝试训练了大约 48 小时,TotoalLoss 就是不能低于 2.0,介于 2.5~3.0 之间。而那段时间,mAP 甚至更低..

所以这是我的问题,鉴于我的情况(我真的不需要任何“高精度”模型,如您所见,我选择了 900 张图像进行训练,并且想简单地做一个 PoC 模型训练/预测就是这样),我应该什么时候停止训练并获得一个合理执行的模型?

【问题讨论】:

  • 你使用了哪个优化器和学习率?您是否使用了某种学习率调度程序?
  • @Koanashi 我基本上下载了一个用TensorFlow预训练的SSD mobilenet模型,并重复使用它的配置文件。
  • 我认为您应该搜索网络或源代码库以了解如何微调检测管道。因为我认为在你的情况下,你会失去预训练模型的好处,因为你从一个太高的学习率开始,让所有的权重都可以训练。

标签: tensorflow deep-learning computer-vision object-detection training-data


【解决方案1】:

确实,您需要对网络进行微调,因为您使用的是 SSD,因此已经有一些来源:

一般而言,您的错误可归因于许多因素,您使用的学习率,图像本身的特征(它们是否已标准化?)如果您使用的 ssd 网络是使用标准化数据训练的,而您没有正常化以重新训练,然后您将在学习时陷入困境。还有他们使用的学习率是多少?

从模型动物园我可以看到,对于 SSD,有一些在 COCO 上训练的模型

以及在 Open Images 上训练的模型:

例如,如果您使用ssd_inception_v2_coco,则输入层中有一个truncated_normal_initializer,因此请考虑到这一点,并确保输入大小与您提供给模型的大小相同。

如果您还包括许多增强功能并考虑到我提到的其余内容,即使数据很少,您也可以获得非常好的检测,有关您的代码的更多详细信息将有助于找出问题所在。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-17
    • 1970-01-01
    • 2021-06-03
    • 2021-08-26
    • 2021-10-03
    • 1970-01-01
    • 2020-07-14
    • 2020-08-28
    相关资源
    最近更新 更多