From 171cf8c9fe41666c7d70ba58c0481ec6675d8941 Mon Sep 17 00:00:00 2001 From: Fangjun Kuang Date: Wed, 9 Apr 2025 11:52:37 +0800 Subject: [PATCH 1/3] Avoid redundant computation in PiecewiseLinear. (#1915) --- egs/librispeech/ASR/zipformer/scaling.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/egs/librispeech/ASR/zipformer/scaling.py b/egs/librispeech/ASR/zipformer/scaling.py index d345c2931..6d6281903 100644 --- a/egs/librispeech/ASR/zipformer/scaling.py +++ b/egs/librispeech/ASR/zipformer/scaling.py @@ -160,8 +160,10 @@ class PiecewiseLinear(object): extra_x_vals.append(extra_x_val) if len(extra_x_vals) > 0: x_vals = sorted(set(x_vals + extra_x_vals)) - y_vals1 = [self(x) for x in x_vals] - y_vals2 = [p(x) for x in x_vals] + + y_vals1 = [self(x) for x in x_vals] + y_vals2 = [p(x) for x in x_vals] + return ( PiecewiseLinear(*zip(x_vals, y_vals1)), PiecewiseLinear(*zip(x_vals, y_vals2)), From 300a821f58abdb9975a3743caf1a78953e97711b Mon Sep 17 00:00:00 2001 From: Fangjun Kuang Date: Thu, 10 Apr 2025 10:30:37 +0800 Subject: [PATCH 2/3] Fix aishell training (#1916) --- egs/aishell/ASR/zipformer/train.py | 5 ++--- egs/aishell/ASR/zipformer/train_bbpe.py | 5 ++--- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/egs/aishell/ASR/zipformer/train.py b/egs/aishell/ASR/zipformer/train.py index cd253c597..dddfe52fa 100755 --- a/egs/aishell/ASR/zipformer/train.py +++ b/egs/aishell/ASR/zipformer/train.py @@ -1343,8 +1343,7 @@ def main(): run(rank=0, world_size=1, args=args) -torch.set_num_threads(1) -torch.set_num_interop_threads(1) - if __name__ == "__main__": + torch.set_num_threads(1) + torch.set_num_interop_threads(1) main() diff --git a/egs/aishell/ASR/zipformer/train_bbpe.py b/egs/aishell/ASR/zipformer/train_bbpe.py index 46a5506db..dbc262c5c 100755 --- a/egs/aishell/ASR/zipformer/train_bbpe.py +++ b/egs/aishell/ASR/zipformer/train_bbpe.py @@ -935,8 +935,7 @@ def main(): run(rank=0, world_size=1, args=args) -torch.set_num_threads(1) -torch.set_num_interop_threads(1) - if __name__ == "__main__": + torch.set_num_threads(1) + torch.set_num_interop_threads(1) main() From 64c53640857d0b9c3fd63070c2f741d374051ce9 Mon Sep 17 00:00:00 2001 From: math345 Date: Thu, 10 Apr 2025 11:37:28 +0800 Subject: [PATCH 3/3] Fix bug: When resuming training from a checkpoint, model_avg was not assigned, resulting in a None error. (#1914) --- egs/wenetspeech/KWS/zipformer/finetune.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/egs/wenetspeech/KWS/zipformer/finetune.py b/egs/wenetspeech/KWS/zipformer/finetune.py index cd437da4c..249209352 100755 --- a/egs/wenetspeech/KWS/zipformer/finetune.py +++ b/egs/wenetspeech/KWS/zipformer/finetune.py @@ -593,6 +593,9 @@ def run(rank, world_size, args): if params.continue_finetune: assert params.start_epoch > 0, params.start_epoch + if rank == 0: + # model_avg is only used with rank 0 + model_avg = copy.deepcopy(model).to(torch.float64) checkpoints = load_checkpoint_if_available( params=params, model=model, model_avg=model_avg )