【问题标题】:Bounding boxes are not drawn even both classification and localization loss is near 0: TensorFlow Object Detection API即使分类和定位损失都接近 0,也不会绘制边界框:TensorFlow Object Detection API
【发布时间】:2019-07-20 13:00:58
【问题描述】:

系统信息

* **Linux Ubuntu 16.04**:

* **TensorFlow installed from source**:

* **TensorFlow version 1.12.0**:

* **CUDA/cuDNN version : 410.86**:

* **GPU model : 1080Ti**:

描述问题

我正在使用 TensorFlow 对象检测 API 训练对象检测算法。

配置文件:https://github.com/tensorflow/models/blob/master/research/object_detection/samples/configs/ssd_resnet50_v1_fpn_shared_box_predictor_640x640_coco14_sync.config

我的配置文件:https://drive.google.com/open?id=1oOqvTyZDWtECWPo_5qYgUsOgZMwAVDlk

型号名称:SSD_resnet50_v1_fpn

在使用对象检测 API 训练模型大约 100000 个全局步骤后,t​​otal_loss 变为零。分类和定位损失也归零,如 Tensorboard 所示 https://drive.google.com/open?id=1FMEyC2pt5Ud-4CJGzN0HTO55MzrN2mHX

但对测试图像的评估表现不佳并绘制了任何边界框。 以下是用于评估的张量板 https://drive.google.com/open?id=1aseVoKWQMjFC2N0X437DnBRIJej3xXYn

我多次检查数据的正确性,每一次都是正确的。

【问题讨论】:

    标签: tensorflow object-detection-api


    【解决方案1】:

    您似乎训练了 10k 步,而不是 100k(x10 因为批量大小,所以 100k 示例,但不是 100k 步)。 正如您从学习率图中看到的那样,您只通过了 5k 的热身(那里有正斜率)。我建议您要么让培训课程继续进行,直到学习率显着降低,例如完成 50k(配置文件中设置的数字)。如果您不想等待那么久/训练集不是那么大,您可以将train_config 中的num_stepsoptimizer 中的total_steps 修改为您想要的数字,例如10k。不要忘记相应地修改warmup_steps,例如为total_steps 的 1/10。我还建议尝试较小的初始学习率,例如0.01,最重要的是 - 给正则化更小的权重/给分类和定位更大的权重,因为看起来正则化压倒了你的损失。

    【讨论】:

      猜你喜欢
      • 2020-06-16
      • 2018-12-02
      • 2020-05-23
      • 1970-01-01
      • 1970-01-01
      • 2018-09-20
      • 2018-01-28
      • 2019-06-17
      • 2020-01-06
      相关资源
      最近更新 更多