From 3b4b33af5808fdafe1c089de1836c94c300fc561 Mon Sep 17 00:00:00 2001 From: Daniel Povey Date: Tue, 20 Dec 2022 19:19:45 +0800 Subject: [PATCH] Avoid infinities in padding frames --- egs/librispeech/ASR/pruned_transducer_stateless7/scaling.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/egs/librispeech/ASR/pruned_transducer_stateless7/scaling.py b/egs/librispeech/ASR/pruned_transducer_stateless7/scaling.py index 4c3271ac6..b21b531d0 100644 --- a/egs/librispeech/ASR/pruned_transducer_stateless7/scaling.py +++ b/egs/librispeech/ASR/pruned_transducer_stateless7/scaling.py @@ -610,7 +610,8 @@ class ConvNorm1d(torch.nn.Module): counts = counts.masked_fill_(src_key_padding_mask.unsqueeze(1), 0.0) sqnorms = sqnorms * counts sqnorms = self.conv(sqnorms) - counts = self.conv(counts) + # the clamping is to avoid division by zero for padding frames. + counts = self.conv(counts).clamp(min=0.01) # scales: (N, 1, T) scales = (sqnorms / counts + eps.exp()) ** -0.5 return x * scales