* **Linux Ubuntu 16.04**:
* **TensorFlow installed from source**:
* **TensorFlow version 1.12.0**:
* **CUDA/cuDNN version : 410.86**:
* **GPU model : 1080Ti**:
我正在使用TensorFlow对象检测API训练对象检测算法。
我的配置文件:https://drive.google.com/open?id=1oOqvTyZDWtECWPo_5qYgUsOgZMwAVDlk
型号名称:SSD_resnet50_v1_fpn
在使用对象检测API训练模型大约100000个全局步骤之后,total_loss变为零。如Tensorboard https://drive.google.com/open?id=1FMEyC2pt5Ud-4CJGzN0HTO55MzrN2mHX所示,分类和本地化损失也变为零
但是对测试图像的评估效果不佳并且绘制任何边界框。下面是评估https://drive.google.com/open?id=1aseVoKWQMjFC2N0X437DnBRIJej3xXYn的张量板
我已多次检查数据的正确性,一切都是正确的。
你似乎训练了10k步,而不是100k(x10因为批量大小,所以100k例子,但不是100k步)。正如你可以从学习率图中看到的那样,你只通过了5k的热身(正斜率)。我建议你让训练课程继续,直到学习率明显降低,例如完成50k(配置文件中设置的数字)。如果您不想等待那么久/训练集不是那么大,您可以将num_steps
中的train_config
和total_steps
中的optimizer
修改为您想要的数字,例如: 10K。不要忘记相应地修改warmup_steps
,例如到total_steps
的1/10。我还建议尝试较小的初始学习率,例如0.01,最重要的是 - 给予正则化较小的权重/给予分类和定位更大的权重,因为看起来正则化压倒了你的损失。