MCPcopy Create free account
hub / github.com/modelscope/FunASR / forward

Method forward

funasr/models/sense_voice/model.py:623–655  ·  view source on GitHub ↗

Embed positions in tensor.

(
        self,
        xs_pad: torch.Tensor,
        ilens: torch.Tensor,
    )

Source from the content-addressed store, hash-verified

621 return self._output_size
622
623 def forward(
624 self,
625 xs_pad: torch.Tensor,
626 ilens: torch.Tensor,
627 ):
628 """Embed positions in tensor."""
629 maxlen = xs_pad.shape[1]
630 masks = sequence_mask(ilens, maxlen=maxlen, device=ilens.device)[:, None, :]
631
632 xs_pad *= self.output_size() ** 0.5
633
634 xs_pad = self.embed(xs_pad)
635
636 # forward encoder1
637 for layer_idx, encoder_layer in enumerate(self.encoders0):
638 encoder_outs = encoder_layer(xs_pad, masks)
639 xs_pad, masks = encoder_outs[0], encoder_outs[1]
640
641 for layer_idx, encoder_layer in enumerate(self.encoders):
642 encoder_outs = encoder_layer(xs_pad, masks)
643 xs_pad, masks = encoder_outs[0], encoder_outs[1]
644
645 xs_pad = self.after_norm(xs_pad)
646
647 # forward encoder2
648 olens = masks.squeeze(1).sum(1).int()
649
650 for layer_idx, encoder_layer in enumerate(self.tp_encoders):
651 encoder_outs = encoder_layer(xs_pad, masks)
652 xs_pad, masks = encoder_outs[0], encoder_outs[1]
653
654 xs_pad = self.tp_norm(xs_pad)
655 return xs_pad, olens
656
657
658@tables.register("model_classes", "SenseVoiceSmall")

Callers

nothing calls this directly

Calls 2

output_sizeMethod · 0.95
sequence_maskFunction · 0.70

Tested by

no test coverage detected