选择tensorflow对象检测API训练超参数

时间:2017-07-04 17:48:19

标签: tensorflow object-detection

我正在基于最近发布的tensorflow对象检测API设置对象检测管道。我使用arXiv作为指导。我希望了解以下对我自己的数据集的培训。

  1. 目前尚不清楚他们如何根据可用于培训的GPU数量选择学习率计划以及如何改变。根据可用于培训的GPU数量,培训费率计划如何变化?该文提到使用了9个GPU。如果我只想使用1个GPU,我该如何改变训练率?

  2. 使用Faster R-CNN发布的Pascal VOC样本培训config file初始学习率= 0.0001。这比原始Faster-RCNN paper中发布的数据低10倍。这是由于对可用于培训的GPU数量或由于不同原因的假设?

  3. 当我从COCO检测检查点开始训练时,训练损失应该如何减少?看看tensorboard,我的数据集训练损失很低 - 每次迭代0.8到1.2之间(批量大小为1)。下图显示了tensorboard的各种损失。 。这是预期的行为吗? Training loss- Faster RCNN

1 个答案:

答案 0 :(得分:9)

对于问题1和问题2:与原始论文相比,我们的实现与一些小细节不同,内部我们使用具有~10个GPU的异步SGD训练所有探测器。我们的学习率针对此设置进行了校准(如果您决定通过Cloud ML Engine进行训练,您也可以使用此设置)。如果您使用其他设置,则必须进行一些超参数探索。对于单个GPU,单独保留学习速率可能不会影响性能,但是通过增加它可以获得更快的收敛。

对于问题3:训练损失不规律地减少,如果你随着时间的推移平滑了这些情节,你只能看到减少。此外,仅通过观察培训损失,很难明确说明您在评估指标方面做得如何。我建议随着时间的推移查看mAP图以及图像可视化,以真正了解您的模型是否已经“解除”。

希望这有帮助。