File size: 2,416 Bytes
7934b29
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
name: "spectrogram-enhancer"

model:
  n_bands: 80
  latent_dim: 192
  style_depth: 4
  network_capacity: 16
  mixed_prob: 0.9
  fmap_max: 192
  start_from_zero: true  # might give better results at downstream tasks 

  generator:
    _target_: "nemo.collections.tts.modules.spectrogram_enhancer.Generator"  
    n_bands: ${model.n_bands}
    latent_dim: ${model.latent_dim}
    network_capacity: ${model.network_capacity}
    style_depth: ${model.style_depth}
    fmap_max: ${model.fmap_max}

  discriminator:
    _target_: "nemo.collections.tts.modules.spectrogram_enhancer.Discriminator"
    n_bands: ${model.n_bands}
    network_capacity: ${model.network_capacity}
    fmap_max: ${model.fmap_max}

  consistency_loss_weight: 10.0  # somewhere in [1., 100.], less for clean datasets, higher for noisier
  gradient_penalty_loss_weight: 10.0  # read stylegan papers before changing
  gradient_penalty_loss_every_n_steps: 4

  # Spectrogram values range, calculated over your dataset with matching STFT parameters.
  # Needed for treating spectrograms as images with pixel values around [0, 1].
  # For LibriTTS, you can try [-13.18, 4.78]
  spectrogram_min_value: ???
  spectrogram_max_value: ???

  train_ds:
    dataset:
      _target_: "nemo.collections.tts.data.tts_dataset.PairedRealFakeSpectrogramsDataset"
      manifest_filepath: ???
    dataloader_params:
      drop_last: true
      shuffle: true
      batch_size: 8
      num_workers: 2

  generator_opt:
    _target_: torch.optim.Adam
    lr: 2e-4
    betas: [0.5, 0.9]

  discriminator_opt:
    _target_: torch.optim.Adam
    lr: 2e-4
    betas: [0.5, 0.9]

trainer:
  num_nodes: 1
  devices: 1
  accelerator: gpu
  strategy: ddp
  precision: 32
  max_epochs: 4
  accumulate_grad_batches: 1
  gradient_clip_val: 1000.0
  log_every_n_steps: 1000
  # we don't really need validation
  check_val_every_n_epoch: null  
  limit_val_batches: 0.0
  benchmark: false
  # provided by exp_manager
  enable_checkpointing: False 
  logger: false

exp_manager:
  exp_dir: ""
  name: ${name}
  create_tensorboard_logger: true
  create_checkpoint_callback: true
  # no good stopping rule, keep every checkpoint
  # tune n_epochs for size of your dataset to avoid wasting space
  checkpoint_callback_params:
    every_n_epochs: 1
    save_on_train_epoch_end: true
    save_top_k: -1
    monitor: "g_loss"
  resume_if_exists: false
  resume_ignore_no_checkpoint: false