@@ -284,61 +284,74 @@ def on_evaluate_start(self, max_key=None, min_key=None):
284284 sys .path .append (os .path .dirname (os .path .dirname (current_dir )))
285285 from librispeech_prepare import prepare_librispeech # noqa E402
286286
287- # Load hyperparameters file with command-line overrides
288- hparams_file , overrides = sb .parse_arguments (sys .argv [1 :])
289- with open (hparams_file ) as fin :
290- hparams = sb .load_extended_yaml (fin , overrides )
291-
292- # Create experiment directory
293- sb .create_experiment_directory (
294- experiment_directory = hparams ["output_folder" ],
295- hyperparams_to_save = hparams_file ,
296- overrides = overrides ,
297- )
298-
299- # Prepare data
300- prepare_librispeech (
301- data_folder = hparams ["data_folder" ],
302- splits = hparams ["train_splits" ]
303- + [hparams ["dev_split" ], "test-clean" , "test-other" ],
304- merge_lst = hparams ["train_splits" ],
305- merge_name = hparams ["csv_train" ],
306- save_folder = hparams ["data_folder" ],
307- )
308-
309- # Creating tokenizer must be done after preparation
310- tokenizer = hparams ["tokenizer" ]()
311-
312- # Load index2label dict for decoding
313- train_set = hparams ["train_loader" ]()
314- valid_set = hparams ["valid_loader" ]()
315- test_clean_set = hparams ["test_clean_loader" ]()
316- test_other_set = hparams ["test_other_loader" ]()
317- ind2lab = hparams ["test_other_loader" ].label_dict ["wrd" ]["index2lab" ]
318- hparams ["ind2lab" ] = ind2lab
319- hparams ["tokenizer" ] = tokenizer
320-
321- # Brain class initialization
322- asr_brain = ASR (
323- modules = hparams ["model" ],
324- opt_class = hparams ["optimizer" ],
325- hparams = hparams ,
326- checkpointer = hparams ["checkpointer" ],
327- )
328-
329- asr_brain .load_tokenizer ()
330- if hasattr (asr_brain .hparams , "lm_ckpt_file" ):
331- asr_brain .load_lm ()
332-
333- # Training
334- asr_brain .fit (asr_brain .hparams .epoch_counter , train_set , valid_set )
335-
336- # Test
337- asr_brain .hparams .wer_file = (
338- hparams ["output_folder" ] + "/wer_test_clean.txt"
339- )
340- asr_brain .evaluate (test_clean_set , max_key = "ACC" )
341- asr_brain .hparams .wer_file = (
342- hparams ["output_folder" ] + "/wer_test_other.txt"
343- )
344- asr_brain .evaluate (test_other_set , max_key = "ACC" )
287+ while True :
288+ try :
289+ # Load hyperparameters file with command-line overrides
290+ hparams_file , overrides = sb .parse_arguments (sys .argv [1 :])
291+ with open (hparams_file ) as fin :
292+ hparams = sb .load_extended_yaml (fin , overrides )
293+
294+ # Create experiment directory
295+ sb .create_experiment_directory (
296+ experiment_directory = hparams ["output_folder" ],
297+ hyperparams_to_save = hparams_file ,
298+ overrides = overrides ,
299+ )
300+
301+ # Prepare data
302+ prepare_librispeech (
303+ data_folder = hparams ["data_folder" ],
304+ splits = hparams ["train_splits" ]
305+ + [hparams ["dev_split" ], "test-clean" , "test-other" ],
306+ merge_lst = hparams ["train_splits" ],
307+ merge_name = hparams ["csv_train" ],
308+ save_folder = hparams ["data_folder" ],
309+ )
310+
311+ # Creating tokenizer must be done after preparation
312+ tokenizer = hparams ["tokenizer" ]()
313+
314+ # Load index2label dict for decoding
315+ train_set = hparams ["train_loader" ]()
316+ valid_set = hparams ["valid_loader" ]()
317+ test_clean_set = hparams ["test_clean_loader" ]()
318+ test_other_set = hparams ["test_other_loader" ]()
319+ ind2lab = hparams ["test_other_loader" ].label_dict ["wrd" ]["index2lab" ]
320+ hparams ["ind2lab" ] = ind2lab
321+ hparams ["tokenizer" ] = tokenizer
322+
323+
324+ # Brain class initialization
325+ asr_brain = ASR (
326+ modules = hparams ["model" ],
327+ opt_class = hparams ["optimizer" ],
328+ hparams = hparams ,
329+ checkpointer = hparams ["checkpointer" ],
330+ )
331+
332+ asr_brain .load_tokenizer ()
333+ if hasattr (asr_brain .hparams , "lm_ckpt_file" ):
334+ asr_brain .load_lm ()
335+
336+ # Training
337+ asr_brain .fit (asr_brain .hparams .epoch_counter , train_set , valid_set )
338+
339+ # Test
340+ asr_brain .hparams .wer_file = (
341+ hparams ["output_folder" ] + "/wer_test_clean.txt"
342+ )
343+ asr_brain .evaluate (test_clean_set , max_key = "ACC" )
344+ asr_brain .hparams .wer_file = (
345+ hparams ["output_folder" ] + "/wer_test_other.txt"
346+ )
347+ asr_brain .evaluate (test_other_set , max_key = "ACC" )
348+
349+ except KeyboardInterrupt :
350+ sys .exit ()
351+
352+ except :
353+ msg = "rand {} failed with pkl I/O, retrying...."
354+ print (msg )
355+
356+
357+
0 commit comments