* **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
我已经多次检查数据的正确性,一切都正确。
答案 0 :(得分:0)
似乎您训练了10k步,而不是100k步(x10由于批处理大小,所以有100k的示例,但没有100k的步)。
从学习率图上可以看到,您只经过了5k的预热(那里有正斜率)。我建议您要么让培训课程继续进行,直到学习率大大降低,例如完成50k(配置文件中设置的数字)。如果您不想等待那么长时间/训练集不是那么大,则可以将num_steps
中的train_config
和total_steps
中的optimizer
修改为您想要的号码,例如10k。不要忘记相应地修改warmup_steps
,例如到total_steps
的1/10。我还建议尝试使用较小的初始学习率,例如0.01,最重要的是-赋予正则化较小的权重/赋予分类和局部化更大的权重,因为正则化看起来使您的损失不堪重负。