首页 文章

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

提问于
浏览
7

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

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

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

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

Training loss- Faster RCNN

1 回答

  • 8

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

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

    希望这可以帮助 .

相关问题