如何避免训练损失在目标检测的前100个步骤中以-1精度急剧增加?

时间:2019-08-06 08:32:45

标签: tensorflow object-detection-api

我正在尝试使用tensorflow和对象检测api在一个简单的对象检测问题上配置传输学习。进行训练时,初始损失可能会很好,但是在最初的100步中会急剧增加(例如0.043至1691411200),然后逐渐减少。当我推断用于训练的数据时,我在对象上没有边界框。

使用以下脚本创建评估和训练数据https://github.com/douglasrizzo/detection_util_scripts,我为一个简单的一类检测问题设置了数据。我在此处上传了一个示例图像并标记为张量流记录:https://ufile.io/eimarmj0

我很怀疑标签是错误的(部分是因为tensorboard甚至没有显示出真实的情况,也没有显示任何绑定框),并且已经尝试了xmin,ymin,xmax,ymax的最明智和最不明智的配置,但都得到了相同的结果训练模式。

该模型是model zoo中的ssd_mobilenet_v1_0.75_depth_300x300_coco14_sync_2018_07_03。

管道在这里: https://gist.github.com/vlschmidt/522f4efd8d62f6488eaf1d59ee098be4

Tensorflow版本:“ 1.14.0”

如何解决此错误,我应该在哪里寻找文档?

1 个答案:

答案 0 :(得分:1)

一些可以帮助您调试的步骤

  1. 请确保输入的训练图像的命名约定中不包含任何空格,例如,图像名称可以是“ cat1.jpg”,但不能是“ cat 1.jpg”,“ cat1.jpg”等。
  2. 确保您的图像文件未损坏,如果该主体读取了您的图像,则该图像被严重损坏,请尝试使用'cv2.imread()'打开每个图像
  3. 仅在认真考虑点1和2时才开始对图像进行注释
  4. 确保在生成tf记录时不会出现任何错误。
  5. 确保每个图像的宽度x高度> 300x300
  6. 重新检查fine_tune_checkpoint: ".../pathto/model.ckpt"label_map_path: ".../pathto/pbtxtxt_input.pbtxt"input_path: ".../pathto/ttt_tensorm_train.record"中的路径,以确保所有内容都是正确的

在进行推断之前,至少要运行1000次迭代