blob: 432d1ccb9a0260d3b7ea03f45af3daf9b97a1c81 (
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: 42
max_epochs: &max_epochs 32
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
# encoder: ResidualNetwork
# encoder_args:
# pretrained: training/experiments/CharacterModel_EmnistDataset_ResidualNetwork/0917_203601/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: 24
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
|