def run(args): # set random seed seed = set_seed(args.seed) if seed is not None: print(f"Set random seed as {seed}") conf, vocab = load_am_conf(args.conf, args.dict) print(f"Arguments in args:\n{pprint.pformat(vars(args))}", flush=True) print(f"Arguments in yaml:\n{pprint.pformat(conf)}", flush=True) asr_cls = aps_asr_nnet(conf["nnet"]) asr_transform = None enh_transform = None if "asr_transform" in conf: asr_transform = aps_transform("asr")(**conf["asr_transform"]) if "enh_transform" in conf: enh_transform = aps_transform("enh")(**conf["enh_transform"]) if enh_transform: nnet = asr_cls(enh_transform=enh_transform, asr_transform=asr_transform, **conf["nnet_conf"]) elif asr_transform: nnet = asr_cls(asr_transform=asr_transform, **conf["nnet_conf"]) else: nnet = asr_cls(**conf["nnet_conf"]) task = aps_task(conf["task"], nnet, **conf["task_conf"]) train_worker(task, conf, vocab, args)
def run(args): # set random seed seed = set_seed(args.seed) if seed is not None: print(f"Set random seed as {seed}") conf, vocab_dict = load_am_conf(args.conf, args.dict) print(f"Arguments in args:\n{pprint.pformat(vars(args))}", flush=True) print(f"Arguments in yaml:\n{pprint.pformat(conf)}", flush=True) data_conf = conf["data_conf"] load_conf = { "fmt": data_conf["fmt"], "vocab_dict": vocab_dict, "num_workers": args.num_workers, "max_batch_size": args.batch_size } load_conf.update(data_conf["loader"]) trn_loader = aps_dataloader(train=True, **data_conf["train"], **load_conf) dev_loader = aps_dataloader(train=False, **data_conf["valid"], **load_conf) asr_cls = aps_asr_nnet(conf["nnet"]) asr_transform = None enh_transform = None if "asr_transform" in conf: asr_transform = aps_transform("asr")(**conf["asr_transform"]) if "enh_transform" in conf: enh_transform = aps_transform("enh")(**conf["enh_transform"]) if enh_transform: nnet = asr_cls(enh_transform=enh_transform, asr_transform=asr_transform, **conf["nnet_conf"]) elif asr_transform: nnet = asr_cls(asr_transform=asr_transform, **conf["nnet_conf"]) else: nnet = asr_cls(**conf["nnet_conf"]) task = aps_task(conf["task"], nnet, **conf["task_conf"]) Trainer = aps_trainer(args.trainer, distributed=False) trainer = Trainer(task, device_ids=args.device_id, checkpoint=args.checkpoint, resume=args.resume, init=args.init, save_interval=args.save_interval, prog_interval=args.prog_interval, tensorboard=args.tensorboard, reduction_tag="#tok", **conf["trainer_conf"]) # dump yaml configurations conf["cmd_args"] = vars(args) with open(f"{args.checkpoint}/train.yaml", "w") as f: yaml.dump(conf, f) # dump dict dump_dict(f"{args.checkpoint}/dict", vocab_dict, reverse=False) trainer.run(trn_loader, dev_loader, num_epochs=args.epochs, eval_interval=args.eval_interval)
def test_linear_freq_sa(num_branch, num_spks, permute): nnet = toy_rnn("freq", num_branch) kwargs = { "phase_sensitive": True, "truncated": 1, "permute": permute, "num_spks": num_spks, "objf": "L2" } task = aps_task("sse@freq_linear_sa", nnet, **kwargs) egs = gen_egs(num_branch) run_epochs(task, egs, 5)
def run(args): # set random seed seed = set_seed(args.seed) if seed is not None: print(f"Set random seed as {seed}") conf, vocab = load_lm_conf(args.conf, args.dict) print(f"Arguments in args:\n{pprint.pformat(vars(args))}", flush=True) print(f"Arguments in yaml:\n{pprint.pformat(conf)}", flush=True) nnet = aps_asr_nnet(conf["nnet"])(**conf["nnet_conf"]) task = aps_task(conf["task"], nnet, **conf["task_conf"]) train_worker(task, conf, vocab, args)
def run(args): # set random seed seed = set_seed(args.seed) if seed is not None: print(f"Set random seed as {seed}") conf = load_ss_conf(args.conf) print(f"Arguments in args:\n{pprint.pformat(vars(args))}", flush=True) print(f"Arguments in yaml:\n{pprint.pformat(conf)}", flush=True) data_conf = conf["data_conf"] load_conf = { "fmt": data_conf["fmt"], "batch_size": args.batch_size, "num_workers": args.num_workers, } load_conf.update(data_conf["loader"]) trn_loader = aps_dataloader(train=True, **load_conf, **data_conf["train"]) dev_loader = aps_dataloader(train=False, **load_conf, **data_conf["valid"]) sse_cls = aps_sse_nnet(conf["nnet"]) if "enh_transform" in conf: enh_transform = aps_transform("enh")(**conf["enh_transform"]) nnet = sse_cls(enh_transform=enh_transform, **conf["nnet_conf"]) else: nnet = sse_cls(**conf["nnet_conf"]) task = aps_task(conf["task"], nnet, **conf["task_conf"]) Trainer = aps_trainer(args.trainer, distributed=False) trainer = Trainer(task, device_ids=args.device_id, checkpoint=args.checkpoint, resume=args.resume, init=args.init, save_interval=args.save_interval, prog_interval=args.prog_interval, tensorboard=args.tensorboard, **conf["trainer_conf"]) # dump configurations conf["cmd_args"] = vars(args) with open(f"{args.checkpoint}/train.yaml", "w") as f: yaml.dump(conf, f) trainer.run(trn_loader, dev_loader, num_epochs=args.epochs, eval_interval=args.eval_interval)
def test_enh_ml(num_channels): nnet_cls = aps_sse_nnet("sse@rnn_enh_ml") transform = EnhTransform(feats="spectrogram-log-cmvn-ipd", frame_len=512, frame_hop=256, ipd_index="0,1;0,2") rnn_ml = nnet_cls(enh_transform=transform, num_bins=257, input_size=257 * 3, input_proj=512, num_layers=2, hidden=512) task = aps_task("sse@enh_ml", rnn_ml) egs = {"mix": th.rand(4, num_channels, 64000)} run_epochs(task, egs, 3)
def test_mel_time_sa(num_branch, num_spks, permute): nnet = toy_rnn("time", num_branch) kwargs = { "frame_len": 512, "frame_hop": 256, "center": False, "window": "hann", "stft_normalized": False, "permute": permute, "num_mels": 80, "num_spks": num_spks } task = aps_task("sse@time_mel_sa", nnet, **kwargs) egs = gen_egs(num_branch) run_epochs(task, egs, 5)
def run(args): # set random seed seed = set_seed(args.seed) if seed is not None: print(f"Set random seed as {seed}") conf, vocab = load_lm_conf(args.conf, args.dict) print(f"Arguments in args:\n{pprint.pformat(vars(args))}", flush=True) print(f"Arguments in yaml:\n{pprint.pformat(conf)}", flush=True) data_conf = conf["data_conf"] load_conf = { "vocab_dict": vocab, "num_workers": args.num_workers, "sos": vocab["<sos>"], "eos": vocab["<eos>"], "fmt": data_conf["fmt"], "max_batch_size": args.batch_size } load_conf.update(data_conf["loader"]) trn_loader = aps_dataloader(train=True, **data_conf["train"], **load_conf) dev_loader = aps_dataloader(train=False, **data_conf["valid"], **load_conf) nnet = aps_asr_nnet(conf["nnet"])(**conf["nnet_conf"]) task = aps_task(conf["task"], nnet, **conf["task_conf"]) Trainer = aps_trainer(args.trainer, distributed=False) trainer = Trainer(task, device_ids=args.device_id, checkpoint=args.checkpoint, resume=args.resume, save_interval=args.save_interval, prog_interval=args.prog_interval, tensorboard=args.tensorboard, reduction_tag="#tok", **conf["trainer_conf"]) # dump configurations conf["cmd_args"] = vars(args) with open(f"{args.checkpoint}/train.yaml", "w") as f: yaml.dump(conf, f) trainer.run(trn_loader, dev_loader, num_epochs=args.epochs, eval_interval=args.eval_interval)
def run(args): # set random seed seed = set_seed(args.seed) if seed is not None: print(f"Set random seed as {seed}") conf = load_ss_conf(args.conf) print(f"Arguments in args:\n{pprint.pformat(vars(args))}", flush=True) print(f"Arguments in yaml:\n{pprint.pformat(conf)}", flush=True) sse_cls = aps_sse_nnet(conf["nnet"]) # with or without enh_tranform if "enh_transform" in conf: enh_transform = aps_transform("enh")(**conf["enh_transform"]) nnet = sse_cls(enh_transform=enh_transform, **conf["nnet_conf"]) else: nnet = sse_cls(**conf["nnet_conf"]) task = aps_task(conf["task"], nnet, **conf["task_conf"]) train_worker(task, conf, args)
def test_snr(num_branch, num_spks, permute): nnet = toy_rnn("time", num_branch) kwargs = {"permute": permute, "num_spks": num_spks, "non_nagetive": True} task = aps_task("sse@snr", nnet, **kwargs) egs = gen_egs(num_branch) run_epochs(task, egs, 5)
def test_wa(num_branch, num_spks, permute): nnet = toy_rnn("time", num_branch) kwargs = {"permute": permute, "num_spks": num_spks, "objf": "L1"} task = aps_task("sse@wa", nnet, **kwargs) egs = gen_egs(num_branch) run_epochs(task, egs, 5)