1

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

4

2 回答 2

2

的损失值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 股份公司。

于 2020-02-05T10:59:35.913 回答
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% 的测试数据。
于 2020-11-16T10:29:45.337 回答