培训SSD-MOBILENET V1且损失不会减少

时间:2019-11-30 23:26:51

标签: tensorflow training-data loss-function object-detection-api ssd

关于CNN和tensorflow我是新手。我训练了一个经过预训练的ssd-mobilenev1-pets.config来检测建筑物的圆柱,大约一天,但是损失在2-1之间,并且自10个小时前就没有减少。 我意识到我的输入图像是128x128,SSD将图像的大小调整为300 * 300。 输入图像的大小会影响训练吗? 如果是这样,我应该使用更大的输入图像来重新训练网络吗?或减少损失的另一种选择是什么?我的火车数据集有660张图像并测试166我不知道是否有足够的图像 我真的很感谢您的帮助....

2 个答案:

答案 0 :(得分:1)

ssd_mobilenet的损失值可以与faster_rcnn不同。摘自EdjeElectronics的TensorFlow对象检测教程:

对于我的Faster-RCNN-Inception-V2模型的培训,它始于 约3.0,并迅速跌至0.8以下。我建议允许您 训练模型,直到损失持续下降到0.05以下 将需要大约40,000个步骤,或大约2个小时(具体取决于 强大的CPU和GPU)。注意:损失数将是 如果使用不同的模型则不同。 MobileNet-SSD以 损失约20,应进行培训,直到持续损失 在2下。

有关更多信息:https://github.com/EdjeElectronics/TensorFlow-Object-Detection-API-Tutorial-Train-Multiple-Objects-Windows-10#6-run-the-training

SSD Mobilnet架构需要额外的培训才能满足 但是,R-CNN模型的损失精度值提供了 在小型设备上的实用性,可伸缩性和易于访问性 这揭示了SSD模型是进一步发展的有希望的候选者 评估(Fleury和Fleury,2018年)。

有关更多信息:Fleury,D.和Fleury,A.(2018)。区域CNN和SSD机器学习对象检测架构的实现,用于在暗视场显微镜中实时分析血源性病原体。 MDPI AG。

答案 1 :(得分:0)

  • 我建议您拍摄15%-20%的图像进行测试,以涵盖训练数据中存在的所有变化。您说过,您有650幅图像用于训练,而150幅图像用于测试。大约占测试图像的25%。看来您有足够的图像开始。我知道的更多,但更好make sure your model also has sufficient data to learn from!

  • 调整图像的大小不会造成损失。确保模型中所有图像的一致性,以便模型能够无偏差地识别它们。只要每个图像的大小都相同,损失就与图像大小调整无关。

  • 如果要使模型完全合适,则必须停下来并一次又一次地恢复检查点。通常,re-training the ssd mobilenet until the loss consistently becomes under 1.
    可以使您以很高的准确性脱身。
    理想情况下,我们希望损失尽可能小,但我们希望make sure the model is not over-fitting.都是关于反复试验的事情。 (损失在0.5和1之间似乎做得不错,但同样取决于您。)

  • 我之所以认为您的模型表现不佳,是因为您拥有各种各样的测试数据,而训练数据却不足以满足需求。

    The model has not been given enough knowledge in training data to make the model learn for new variety of testing data.(例如:您的测试数据包含一些建筑物的新角度的图像,这些图像在训练数据中不足以显示)。在这种情况下,建议您将各种图像放入训练数据中,然后选择图像进行测试以确保您仍然有足够的新姿势训练数据。因此,我建议您采用15%-20%的测试数据。