File size: 3,415 Bytes
9ff30f9
 
 
 
 
 
 
568c3f1
9ff30f9
634cc2a
9ff30f9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
104
105
106
107
108
109
110
111
112
# @package _global_
defaults:
  - override /model: demucs
  - override /effects: all
seed: 12345
sample_rate: 48000
chunk_size: 262144 # 5.5s
logs_dir: "./logs"
render_files: True

accelerator: "gpu"
log_audio: False
# Effects
num_kept_effects: [0,0] # [min, max]
num_removed_effects: [0,5] # [min, max]
shuffle_kept_effects: True
shuffle_removed_effects: True
num_classes: 5
effects_to_keep:
effects_to_remove:
  - distortion
  - compressor
  - reverb
  - chorus
  - delay

datamodule:
  _target_: remfx.datasets.EffectDatamodule
  train_dataset:
    _target_: remfx.datasets.DynamicEffectDataset
    total_chunks: 8000
    sample_rate: ${sample_rate}
    root: ${oc.env:DATASET_ROOT}
    chunk_size: ${chunk_size}
    mode: "train"
    effect_modules: ${effects}
    effects_to_keep: ${effects_to_keep}
    effects_to_remove: ${effects_to_remove}
    num_kept_effects: ${num_kept_effects}
    num_removed_effects: ${num_removed_effects}
    shuffle_kept_effects: ${shuffle_kept_effects}
    shuffle_removed_effects: ${shuffle_removed_effects}
    render_files: ${render_files}
    render_root: ${render_root}
    parallel: True
  val_dataset:
    _target_: remfx.datasets.EffectDataset
    total_chunks: 1000
    sample_rate: ${sample_rate}
    root: ${oc.env:DATASET_ROOT}
    chunk_size: ${chunk_size}
    mode: "val"
    effect_modules: ${effects}
    effects_to_keep: ${effects_to_keep}
    effects_to_remove: ${effects_to_remove}
    num_kept_effects: ${num_kept_effects}
    num_removed_effects: ${num_removed_effects}
    shuffle_kept_effects: ${shuffle_kept_effects}
    shuffle_removed_effects: ${shuffle_removed_effects}
    render_files: ${render_files}
    render_root: ${render_root}
  test_dataset:
    _target_: remfx.datasets.EffectDataset
    total_chunks: 1000
    sample_rate: ${sample_rate}
    root: ${oc.env:DATASET_ROOT}
    chunk_size: ${chunk_size}
    mode: "test"
    effect_modules: ${effects}
    effects_to_keep: ${effects_to_keep}
    effects_to_remove: ${effects_to_remove}
    num_kept_effects: ${num_kept_effects}
    num_removed_effects: ${num_removed_effects}
    shuffle_kept_effects: ${shuffle_kept_effects}
    shuffle_removed_effects: ${shuffle_removed_effects}
    render_files: ${render_files}
    render_root: ${render_root}
  train_batch_size: 32
  test_batch_size: 256
  num_workers: 12

callbacks:
  model_checkpoint:
    _target_: pytorch_lightning.callbacks.ModelCheckpoint
    monitor: "valid_avg_acc_epoch"   # name of the logged metric which determines when model is improving
    save_top_k: 1           # save k best models (determined by above metric)
    save_last: True         # additionaly always save model from last epoch
    mode: "max"             # can be "max" or "min"
    verbose: True
    dirpath: ${logs_dir}/ckpts/${now:%Y-%m-%d-%H-%M-%S}
    filename: '{epoch:02d}-{valid_avg_acc_epoch:.3f}'
  learning_rate_monitor:
    _target_: pytorch_lightning.callbacks.LearningRateMonitor
    logging_interval: "step"
  #audio_logging:
  #  _target_: remfx.callbacks.AudioCallback
  #  sample_rate: ${sample_rate}
  #  log_audio: ${log_audio}


trainer:
  _target_: pytorch_lightning.Trainer
  precision: 32 # Precision used for tensors, default `32`
  min_epochs: 0
  max_epochs: 300
  log_every_n_steps: 1 # Logs metrics every N batches
  accumulate_grad_batches: 1
  accelerator: ${accelerator}
  devices: 1
  gradient_clip_val: 10.0
  max_steps: -1