diff --git a/deepspeech/modules/conv.py b/deepspeech/modules/conv.py index 8bf48b2c80de27f6270f5858d03a90098ddb18f1..c4307fe7e746f60a597a295cd2287ead3eaff2ae 100644 --- a/deepspeech/modules/conv.py +++ b/deepspeech/modules/conv.py @@ -114,7 +114,6 @@ class ConvBn(nn.Layer): masks = make_non_pad_mask(x_len) #[B, T] masks = masks.unsqueeze(1).unsqueeze(1) # [B, 1, 1, T] # TODO(Hui Zhang): not support bool multiply - # masks = masks.type_as(x) masks = masks.astype(x.dtype) x = x.multiply(masks) diff --git a/deepspeech/modules/encoder.py b/deepspeech/modules/encoder.py index e326db8f92481d15b2c51a7dedd638e2cab4eb00..0aedea7480a72f627e3f313b04ecfe0add7ad4de 100644 --- a/deepspeech/modules/encoder.py +++ b/deepspeech/modules/encoder.py @@ -159,7 +159,7 @@ class BaseEncoder(nn.Layer): if self.global_cmvn is not None: xs = self.global_cmvn(xs) #TODO(Hui Zhang): self.embed(xs, masks, offset=0), stride_slice not support bool tensor - xs, pos_emb, masks = self.embed(xs, masks.type_as(xs), offset=0) + xs, pos_emb, masks = self.embed(xs, masks.astype(xs.dtype), offset=0) #TODO(Hui Zhang): remove mask.astype, stride_slice not support bool tensor masks = masks.astype(paddle.bool) #TODO(Hui Zhang): mask_pad = ~masks diff --git a/deepspeech/modules/loss.py b/deepspeech/modules/loss.py index 3e441bbbce40f8d65bcd9156b427ccc13fd56db2..fd4c7c575dc8e1159ecdbbb873894fe659ebbe7a 100644 --- a/deepspeech/modules/loss.py +++ b/deepspeech/modules/loss.py @@ -136,7 +136,7 @@ class LabelSmoothingLoss(nn.Layer): #TODO(Hui Zhang): sum not support bool type #total = len(target) - int(ignore.sum()) - total = len(target) - int(ignore.type_as(target).sum()) + total = len(target) - int(ignore.astype(target.dtype).sum()) denom = total if self.normalize_length else B #numer = (kl * (1 - ignore)).sum() numer = kl.masked_fill(ignore.unsqueeze(1), 0).sum() diff --git a/deepspeech/utils/tensor_utils.py b/deepspeech/utils/tensor_utils.py index 7679d9e1c573a552eaf0086da12b19dd018c9024..58f958c4bf30340e51d087d8a9f138c8128cf03a 100644 --- a/deepspeech/utils/tensor_utils.py +++ b/deepspeech/utils/tensor_utils.py @@ -159,8 +159,8 @@ def th_accuracy(pad_outputs: paddle.Tensor, # pad_pred.masked_select(mask) == pad_targets.masked_select(mask)) numerator = ( pad_pred.masked_select(mask) == pad_targets.masked_select(mask)) - numerator = paddle.sum(numerator.type_as(pad_targets)) + numerator = paddle.sum(numerator.astype(pad_targets.dtype)) #TODO(Hui Zhang): sum not support bool type # denominator = paddle.sum(mask) - denominator = paddle.sum(mask.type_as(pad_targets)) + denominator = paddle.sum(mask.astype(pad_targets.dtype)) return float(numerator) / float(denominator)