From 79a2f09f6259cac078e77920e19ac2e16299ee9a Mon Sep 17 00:00:00 2001 From: Daniel Povey Date: Tue, 19 Jul 2022 06:54:49 +0800 Subject: [PATCH] Change how formula for max_lr_factor works, and increase factor from 2.5 to 3. --- .../ASR/pruned_transducer_stateless7/optim.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/egs/librispeech/ASR/pruned_transducer_stateless7/optim.py b/egs/librispeech/ASR/pruned_transducer_stateless7/optim.py index 49b6f0352..2583439e7 100644 --- a/egs/librispeech/ASR/pruned_transducer_stateless7/optim.py +++ b/egs/librispeech/ASR/pruned_transducer_stateless7/optim.py @@ -145,7 +145,7 @@ param_rms_smooth1: Smoothing proportion for parameter matrix, if assumed rank of param_pow=0.75, param_rms_smooth0=0.75, param_rms_smooth1=0.25, - max_lr_factor=2.5, + max_lr_factor=3.0, eps=1.0e-08, param_min_rms=1.0e-05, param_max_rms=2.0, @@ -1016,11 +1016,10 @@ param_rms_smooth1: Smoothing proportion for parameter matrix, if assumed rank of ans = rms / new_mean - # Apply max_lr_factor; approach the constraint in 2 steps because it - # changes the mean, and it's relative to the mean. - ans.clamp_(max=max_lr_factor * 2) - ans /= _mean(ans, exclude_dims=[0], keepdim=True) - ans.clamp_(max=max_lr_factor) + # Apply a `soft min` of max_lr_factor via the formula + # softmin(x,y) = 1/(1/x + 1/y). + ans = 1. / (1. / ans + 1. / max_lr_factor) + # and renormalize to mean=1. ans /= _mean(ans, exclude_dims=[0], keepdim=True) return ans