global:
  name: train-abinet
  phase: train
  stage: train-super
  workdir: workdir
  seed: ~

dataset:
  train: {
    roots: ['datasets/data_lmdb_release/training/MJ/MJ_train/',
            'datasets/data_lmdb_release/training/MJ/MJ_test/',
            'datasets/data_lmdb_release/training/MJ/MJ_valid/',
            'datasets/data_lmdb_release/training/ST'],
    batch_size: 384
  }
  test: {
    roots: ['datasets/data_lmdb_release/evaluation/SVTP'],
    batch_size: 1
  }
  data_aug: False
  multiscales: False
  num_workers: 0

training:
  epochs: 10
  show_iters: 50
  eval_iters: 3000
  save_iters: 3000

optimizer:
  type: Adam
  true_wd: False
  wd: 0.0
  bn_wd: False
  clip_grad: 20
  lr: 0.0001
  args: {
    betas: !!python/tuple [0.9, 0.999], # for default Adam
  }
  scheduler: {
    periods: [6, 4],
    gamma: 0.1,
  }

model:
  name: 'modules_abinet.model_abinet_iter.ABINetIterModel'
  iter_size: 3
  ensemble: ''
  use_vision: False
  vision: {
    checkpoint: pretrained/abinet_vision.pth,
    loss_weight: 1.,
    attention: 'position',
    backbone: 'transformer',
    backbone_ln: 3,
  }
  language: {
    checkpoint:  pretrained/abinet_language_model.pth,
    num_layers: 4,
    loss_weight: 1.,
    detach: True,
    use_self_attn: False
  }
  alignment: {
    loss_weight: 1.,
  }