summaryrefslogtreecommitdiff
path: root/training/conf/experiment/barlow_twins_paragraphs.yaml
blob: caefb47ee8d61abf8e78cd8432a86974fee82470 (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
92
93
94
95
96
97
98
99
100
101
102
103
# @package _global_

defaults:
  - override /criterion: null
  - override /datamodule: null
  - override /network: null
  - override /model: null
  - override /lr_schedulers: null
  - override /optimizers: null

epochs: &epochs 1000
summary: [[1, 1, 576, 640]]

criterion:
  _target_: text_recognizer.criterions.barlow_twins.BarlowTwinsLoss
  dim: 512
  lambda_: 3.9e-3

# callbacks:
#   stochastic_weight_averaging:
#     _target_: pytorch_lightning.callbacks.StochasticWeightAveraging
#     swa_epoch_start: 0.75
#     swa_lrs: 1.0e-5
#     annealing_epochs: 10
#     annealing_strategy: cos
#     device: null

optimizers:
  madgrad:
    _target_: madgrad.MADGRAD
    lr: 1.0e-3
    momentum: 0.9
    weight_decay: 1.0e-6
    eps: 1.0e-6
    parameters: network

lr_schedulers:
  network:
    _target_: torch.optim.lr_scheduler.OneCycleLR
    max_lr: 1.0e-1
    total_steps: null
    epochs: *epochs
    steps_per_epoch: 5053
    pct_start: 0.03
    anneal_strategy: cos
    cycle_momentum: true
    base_momentum: 0.85
    max_momentum: 0.95
    div_factor: 25
    final_div_factor: 1.0e4
    three_phase: false
    last_epoch: -1
    verbose: false
    # Non-class arguments
    interval: step
    monitor: val/loss

datamodule:
  _target_: text_recognizer.data.iam_extended_paragraphs.IAMExtendedParagraphs
  batch_size: 4
  num_workers: 12
  train_fraction: 0.9
  pin_memory: true
  transform: transform/barlow_paragraphs.yaml
  test_transform: transform/barlow_paragraphs.yaml
  mapping:
    _target_: text_recognizer.data.mappings.emnist_mapping.EmnistMapping
    extra_symbols: [ "\n" ]

network:
  _target_: text_recognizer.networks.barlow_twins.network.BarlowTwins
  encoder:
    _target_: text_recognizer.networks.encoders.efficientnet.EfficientNet
    arch: b0
    out_channels: 1280
    stochastic_dropout_rate: 0.2
    bn_momentum: 0.99
    bn_eps: 1.0e-3
  projector:
    _target_: text_recognizer.networks.barlow_twins.projector.Projector
    dims: [1280, 512, 512, 512]

model:
  _target_: text_recognizer.models.barlow_twins.BarlowTwinsLitModel

trainer:
  _target_: pytorch_lightning.Trainer
  stochastic_weight_avg: true
  auto_scale_batch_size: binsearch
  auto_lr_find: false
  gradient_clip_val: 0.0
  fast_dev_run: false
  gpus: 1
  precision: 16
  max_epochs: *epochs
  terminate_on_nan: true
  weights_summary: null
  limit_train_batches: 1.0 
  limit_val_batches: 1.0
  limit_test_batches: 1.0
  resume_from_checkpoint: null
  accumulate_grad_batches: 128
  overfit_batches: 0