如何选择超参数以在AWS sagemaker上训练良好的对象检测模型?

时间:2019-06-18 03:12:46

标签: python amazon-web-services machine-learning object-detection amazon-sagemaker

使用AWS sagemaker algorithm进行对象检测。

我创建了带有和不带有自动调整功能的对象检测模型。其中有些具有良好的mAP,有些则没有,而当我在新照片上对其进行测试时,并非可以检测到我所有的物体。

我应该选择哪个parametershyperparameters来拥有最佳模型?

另外,您认为我需要多少张照片?

谢谢!

目前,我正在尝试检测立顿茶(方盒)。我有5种不同的茶(所以5类),总共有500张图像。每堂课100。 我将数据分为90%进行培训和10%进行验证。然后,我将使用新图片进行测试。

tuned_hyperparameters_ranges = {
    'learning_rate': ContinuousParameter(0.001, 0.05),
    'momentum': ContinuousParameter(0.4, 0.99),
}

我需要它至少有90%的检测率。

1 个答案:

答案 0 :(得分:0)

每堂课100张图片听起来很合理。我的建议:

  1. 尝试将base_network设置为resnet-50,如gluoncv model zoo visualization所示,在一般的COCO检测任务上,resnet50主干要比vgg16主干提供更好的性能
  2. 通过设置使用转移学习 use_pretrained_model=1
  3. 在训练作业指标中检查验证mAP纪元在一个纪元之后的外观。如果训练曲线没有变平,请考虑通过增加epochs
  4. 来延长训练时间
  5. 使用学习率计划来逐渐减少体重增加的幅度。这可以采用多种形式,但首先您可以将学习率除以每1/3个时期的10。例如,如果您有60个纪元,请设置lr_scheduler_step='20,40'lr_scheduler_factor=0.1

然后,您可以至少在learning_ratemini_batch_size上运行超参数调整

如果仍然不能满足要求,请根据每个选项的成本,考虑收集更多数据或使用自定义代码实施其他检测器。 SageMaker Detector是一个SSD,具有适当技巧的替代架构(如Faster-RCNN或YoloV3)可能会提供更好的性能。您可以在python中找到很棒的检测器架构,以在上面链接的模型Zoo的MXNet容器中实现。与使用内置的SageMaker检测器相比,这将花费更多的精力,因此,我将首先尝试上面的4个选项