我正在开发一个项目,使用Tensorflow Object Detection API从卫星图像中检测建筑物(使用OpenStreetMap数据作为标签)。我最近升级到了 Tensorflow 2,并从Model ZOO中选择了 EfficientDet D4 。
我根据我的数据训练(微调)这个预训练模型。在整个训练过程中,我始终使用模型的当前状态进行预测。关键是看看模型的性能如何通过训练变得更好。
问题:在验证数据集中预测建筑物的能力根本没有提高。事实上,情况越来越糟!但是,训练期间的损失在不断减少。
这是一个示例 - 蓝色是模型在不到 1 个 epoch 之后的预测,而红色是模型训练更多的预测:
对我来说,这没有任何意义。我花了很多时间尝试不同的变体,使用另一个数据集进行评估等。但是当我更多地训练模型时,我仍然得到更差的结果(在精度、召回率、f1 方面)。这不是由于过度拟合,模型的性能几乎立即开始下降。
早些时候,我使用 Tensorflow 1 和 SSD Inception V2 作为模型。这按预期工作,即模型检测建筑物的能力随着训练的进行而提高。
问题:这可能是什么原因,我可以尝试解决这个问题吗?我已经没有想法了。
我是机器学习的新手,所以我可能在这里遗漏了一些重要信息。如果需要更多细节来回答这个问题,请告诉我。
