File size: 5,291 Bytes
7e98d38
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
hydra:
  run:
    dir: ${protocol}/${task._target_}/${now:%Y-%m-%d}/${now:%H-%M-%S}
  sweep:
    dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S}/${protocol}/${task._target_}
    subdir: ${hydra.job.num}
  hydra_logging:
    version: 1
    formatters:
      simple:
        format: '[%(asctime)s][HYDRA] %(message)s'
    handlers:
      console:
        class: logging.StreamHandler
        formatter: simple
        stream: ext://sys.stdout
    root:
      level: INFO
      handlers:
      - console
    loggers:
      logging_example:
        level: DEBUG
    disable_existing_loggers: false
  job_logging:
    version: 1
    formatters:
      simple:
        format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s'
    handlers:
      console:
        class: logging.StreamHandler
        formatter: simple
        stream: ext://sys.stdout
      file:
        class: logging.FileHandler
        formatter: simple
        filename: ${hydra.job.name}.log
    root:
      level: INFO
      handlers:
      - console
      - file
    disable_existing_loggers: false
  sweeper:
    _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper
    max_batch_size: null
  launcher:
    _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher
  help:
    app_name: pyannote-audio-train
    header: == ${hydra.help.app_name} ==
    footer: 'Powered by Hydra (https://hydra.cc)

      Use --hydra-help to view Hydra specific help'
    template: "${hydra.help.header}\n\npyannote-audio-train protocol={protocol_name}\
      \ task={task} model={model}\n\n{task} can be any of the following:\n* vad (default)\
      \ = voice activity detection\n* scd = speaker change detection\n* osd = overlapped\
      \ speech detection\n* xseg = multi-task segmentation\n\n{model} can be any of\
      \ the following:\n* debug (default) = simple segmentation model for debugging\
      \ purposes\n\n{optimizer} can be any of the following\n* adam (default) = Adam\
      \ optimizer\n\n{trainer} can be any of the following\n* fast_dev_run for debugging\n\
      * default (default) for training the model\n\nOptions\n=======\n\nHere, we describe\
      \ the most common options: use \"--cfg job\" option to get a complete list.\n\
      \n* task.duration: audio chunk duration (in seconds)\n* task.batch_size: number\
      \ of audio chunks per batch\n* task.num_workers: number of workers used for\
      \ generating training chunks\n\n* optimizer.lr: learning rate\n* trainer.auto_lr_find:\
      \ use pytorch-lightning AutoLR\n\nHyper-parameter optimization\n============================\n\
      \nBecause it is powered by Hydra (https://hydra.cc), one can run grid search\
      \ using the --multirun option.\n\nFor instance, the following command will run\
      \ the same job three times, with three different learning rates:\n  pyannote-audio-train\
      \ --multirun protocol={protocol_name} task={task} optimizer.lr=1e-3,1e-2,1e-1\n\
      \nEven better, one can use Ax (https://ax.dev) sweeper to optimize learning\
      \ rate directly:\n  pyannote-audio-train --multirun hydra/sweeper=ax protocol={protocol_name}\
      \ task={task} optimizer.lr=\"interval(1e-3, 1e-1)\"\n\nSee https://hydra.cc/docs/plugins/ax_sweeper\
      \ for more details.\n\nUser-defined task or model\n==========================\n\
      \n1. define your_package.YourTask (or your_package.YourModel) class\n2. create\
      \ file /path/to/your_config/task/your_task.yaml  (or /path/to/your_config/model/your_model.yaml)\n\
      \   # @package _group_\n   _target_: your_package.YourTask  # or YourModel\n\
      \   param1: value1\n   param2: value2\n3. call pyannote-audio-train --config-dir\
      \ /path/to/your_config task=your_task task.param1=modified_value1 model=your_model\
      \ ...\n\n${hydra.help.footer}"
  hydra_help:
    hydra_help: ???
    template: 'Hydra (${hydra.runtime.version})

      See https://hydra.cc for more info.


      == Flags ==

      $FLAGS_HELP


      == Configuration groups ==

      Compose your configuration from those groups (For example, append hydra/job_logging=disabled
      to command line)


      $HYDRA_CONFIG_GROUPS


      Use ''--cfg hydra'' to Show the Hydra config.

      '
  output_subdir: ''
  overrides:
    hydra: []
    task:
    - protocol=VoxCeleb.SpeakerVerification.VoxCeleb_X
    - task=SpeakerEmbedding
    - task.num_workers=20
    - task.min_duration=2
    - task.duration=5.
    - task.num_classes_per_batch=64
    - task.num_chunks_per_class=4
    - task.margin=10.0
    - task.scale=50.
    - model=XVectorSincNet
    - trainer.gpus=1
    - +augmentation=background_then_reverb
  job:
    name: train
    override_dirname: +augmentation=background_then_reverb,model=XVectorSincNet,protocol=VoxCeleb.SpeakerVerification.VoxCeleb_X,task.duration=5.,task.margin=10.0,task.min_duration=2,task.num_chunks_per_class=4,task.num_classes_per_batch=64,task.num_workers=20,task.scale=50.,task=SpeakerEmbedding,trainer.gpus=1
    id: ???
    num: ???
    config_name: config
    env_set: {}
    env_copy: []
    config:
      override_dirname:
        kv_sep: '='
        item_sep: ','
        exclude_keys: []
  runtime:
    version: 1.0.4
    cwd: /gpfsdswork/projects/rech/eie/uno46kl/xvectors/debug
  verbose: false