architecture: YOLOv6
norm_type: sync_bn
use_ema: True
ema_decay: 0.9999
ema_decay_type: "exponential"
find_unused_parameters: True

act: 'relu'
training_mode: "repvgg"
self_distill: False

depth_mult: 0.33 # default: s model
width_mult: 0.50

YOLOv6:
  backbone: EfficientRep
  neck: RepBiFPAN
  yolo_head: EffiDeHead
  post_process: ~

EfficientRep:
  arch: 'P5'
  return_idx: [2, 3, 4]
  fuse_P2: True
  cspsppf: True

# use default config
# RepBiFPAN:

EffiDeHead:
  fpn_strides: [8, 16, 32]
  grid_cell_scale: 5.0
  grid_cell_offset: 0.5
  reg_max: 0
  use_dfl: False
  static_assigner_epoch: 4 # warmup_epoch
  loss_weight: {cls: 1.0, iou: 2.5}
  iou_type: 'siou' # 'siou' in n version, 'giou' in s/m/l version
  static_assigner:
    name: ATSSAssigner
    topk: 9
  assigner:
    name: TaskAlignedAssigner
    topk: 13
    alpha: 1.0
    beta: 6.0
  nms:
    name: MultiClassNMS
    nms_top_k: 3000
    keep_top_k: 300
    score_threshold: 0.03
    nms_threshold: 0.65

EffiDeHead_distill_ns:
  fpn_strides: [8, 16, 32]
  grid_cell_scale: 5.0
  grid_cell_offset: 0.5
  reg_max: 16
  use_dfl: True
  static_assigner_epoch: 4 # warmup_epoch
  loss_weight: {cls: 1.0, iou: 2.5}
  iou_type: 'siou' # 'siou' in n version, 'giou' in s/m/l version
  static_assigner:
    name: ATSSAssigner
    topk: 9
  assigner:
    name: TaskAlignedAssigner
    topk: 13
    alpha: 1.0
    beta: 6.0
  nms:
    name: MultiClassNMS
    nms_top_k: 3000
    keep_top_k: 300
    score_threshold: 0.03
    nms_threshold: 0.65
