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

How to avoid training loss to increase dramatically in first 100 steps of object detection with accuracy of -1?

我正在尝试使用 tensorflow 和对象检测在一个简单的对象检测问题上配置迁移学习 api。在进行训练时,初始损失可能相当不错,但在前 100 步中急剧增加(例如 0.043 到 1691411200),然后缓慢减少。当我对用于训练的数据进行推理时,我在对象上没有得到边界框。

使用以下脚本创建评估和训练数据https://github.com/douglasrizzo/detection_util_scripts I setup the data for a simple one class detection problem. I have uploaded an example image and label as tensorflow record here: https://ufile.io/eimarmj0

我很怀疑标签是错误的(部分原因是 tensorboard 没有显示任何边界框,即使是基本事实)并且尝试了 xmin、ymin、xmax、ymax 的最明智和一些不明智的配置,但都得到了同样的训练模式。

模型是 ssd_mobilenet_v1_0。75_depth_300x300_coco14_sync_2018_07_03 来自 model zoo

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

Tensorflow 版本:'1.14.0'

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

几个步骤将帮助您调试

  1. 确保您输入的训练图像在命名约定中不包含任何空格,例如图像名称可以是 "cat1.jpg" 但不能是 "cat 1.jpg"、"cat1 .jpg" 等
  2. 确保你的图片文件没有损坏,尝试用'cv2.imread()'打开每张图片,如果dosent读取了你的图片,那么该图片确实损坏了
  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 次