summaryrefslogtreecommitdiff
path: root/src/training/experiments/line_ctc_experiment.yml
blob: f309990fcb91e545f0bdeb5fdcba35ca9219f71f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
experiment_group: Lines Experiments
experiments:
    - train_args:
        batch_size: 64
        max_epochs: &max_epochs 64
      dataset:
        type: IamLinesDataset
        args:
          subsample_fraction: null
          transform: null
          target_transform: null
        train_args:
          num_workers: 8
          train_fraction: 0.85
      model: LineCTCModel
      metrics: [cer, wer]
      network:
        type: LineRecurrentNetwork
        args:
          # backbone: ResidualNetwork
          # backbone_args:
          #   in_channels: 1
          #   num_classes: 64 # Embedding
          #   depths: [2,2]
          #   block_sizes: [32, 64]
          #   activation: selu
          #   stn: false
          backbone: ResidualNetwork
          backbone_args:
            pretrained: training/experiments/CharacterModel_EmnistDataset_ResidualNetwork/0920_010806/model/best.pt
            freeze: false
          flatten: false
          input_size: 64
          hidden_size: 64
          bidirectional: true
          num_layers: 2
          num_classes: 80
          patch_size: [28, 18]
          stride: [1, 4]
      criterion:
        type: CTCLoss
        args:
          blank: 79
      optimizer:
        type: AdamW
        args:
          lr: 1.e-02
          betas: [0.9, 0.999]
          eps: 1.e-08
          weight_decay: 5.e-4
          amsgrad: false
      lr_scheduler:
        type: OneCycleLR
        args:
          max_lr: 1.e-02
          epochs: *max_epochs
          anneal_strategy: cos
          pct_start: 0.475
          cycle_momentum: true
          base_momentum: 0.85
          max_momentum: 0.9
          div_factor: 10
          final_div_factor: 10000
          interval: step
      # lr_scheduler:
      #   type: CosineAnnealingLR
      #   args:
      #     T_max: *max_epochs
      swa_args:
        start: 48
        lr: 5.e-2
      callbacks: [Checkpoint, ProgressBar, WandbCallback, WandbImageLogger, EarlyStopping]
      callback_args:
        Checkpoint:
          monitor: val_loss
          mode: min
        ProgressBar:
          epochs: *max_epochs
        EarlyStopping:
          monitor: val_loss
          min_delta: 0.0
          patience: 10
          mode: min
        WandbCallback:
          log_batch_frequency: 10
        WandbImageLogger:
          num_examples: 6
      verbosity: 1 # 0, 1, 2
      resume_experiment: null
      test: true
      test_metric: test_cer