_BASE_: [
  '../datasets/coco_detection.yml',
  '../runtime.yml',
  './_base_/ppyolo_mbv3_large.yml',
  './_base_/optimizer_1x.yml',
  './_base_/ppyolo_reader.yml',
]

snapshot_epoch: 10
weights: output/ppyolo_mbv3_large_coco/model_final

TrainReader:
  inputs_def:
    num_max_boxes: 90
  sample_transforms:
    - Decode: {}
    - Mixup: {alpha: 1.5, beta: 1.5}
    - RandomDistort: {}
    - RandomExpand: {fill_value: [123.675, 116.28, 103.53]}
    - RandomCrop: {}
    - RandomFlip: {}
  batch_transforms:
    - BatchRandomResize:
        target_size: [224, 256, 288, 320, 352, 384, 416, 448, 480, 512]
        random_size: True
        random_interp: True
        keep_ratio: False
    - NormalizeBox: {}
    - PadBox: {num_max_boxes: 90}
    - BboxXYXY2XYWH: {}
    - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True}
    - Permute: {}
    - Gt2YoloTarget:
        anchor_masks: [[3, 4, 5], [0, 1, 2]]
        anchors: [[11, 18], [34, 47], [51, 126], [115, 71], [120, 195], [254, 235]]
        downsample_ratios: [32, 16]
        iou_thresh: 0.25
        num_classes: 80
  batch_size: 32
  mixup_epoch: 200
  shuffle: true

EvalReader:
  sample_transforms:
    - Decode: {}
    - Resize: {target_size: [320, 320], keep_ratio: False, interp: 2}
    - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True}
    - Permute: {}
  batch_size: 8

TestReader:
  inputs_def:
    image_shape: [3, 320, 320]
  sample_transforms:
    - Decode: {}
    - Resize: {target_size: [320, 320], keep_ratio: False, interp: 2}
    - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True}
    - Permute: {}
  batch_size: 1

epoch: 270

LearningRate:
  base_lr: 0.005
  schedulers:
  - !PiecewiseDecay
    gamma: 0.1
    milestones:
    - 162
    - 216
  - !LinearWarmup
    start_factor: 0.
    steps: 4000

OptimizerBuilder:
  optimizer:
    momentum: 0.9
    type: Momentum
  regularizer:
    factor: 0.0005
    type: L2
