Embed positions in tensor.
(
self,
xs_pad: torch.Tensor,
ilens: torch.Tensor,
)
| 544 | return self._output_size |
| 545 | |
| 546 | def forward( |
| 547 | self, |
| 548 | xs_pad: torch.Tensor, |
| 549 | ilens: torch.Tensor, |
| 550 | ): |
| 551 | """Embed positions in tensor.""" |
| 552 | masks = sequence_mask(ilens, device=ilens.device)[:, None, :] |
| 553 | |
| 554 | xs_pad *= self.output_size() ** 0.5 |
| 555 | |
| 556 | xs_pad = self.embed(xs_pad) |
| 557 | |
| 558 | # forward encoder1 |
| 559 | for layer_idx, encoder_layer in enumerate(self.encoders0): |
| 560 | encoder_outs = encoder_layer(xs_pad, masks) |
| 561 | xs_pad, masks = encoder_outs[0], encoder_outs[1] |
| 562 | |
| 563 | for layer_idx, encoder_layer in enumerate(self.encoders): |
| 564 | encoder_outs = encoder_layer(xs_pad, masks) |
| 565 | xs_pad, masks = encoder_outs[0], encoder_outs[1] |
| 566 | |
| 567 | xs_pad = self.after_norm(xs_pad) |
| 568 | |
| 569 | # forward encoder2 |
| 570 | olens = masks.squeeze(1).sum(1).int() |
| 571 | |
| 572 | for layer_idx, encoder_layer in enumerate(self.tp_encoders): |
| 573 | encoder_outs = encoder_layer(xs_pad, masks) |
| 574 | xs_pad, masks = encoder_outs[0], encoder_outs[1] |
| 575 | |
| 576 | xs_pad = self.tp_norm(xs_pad) |
| 577 | return xs_pad, olens |
| 578 | |
| 579 | |
| 580 | @tables.register("model_classes", "SenseVoiceSmall") |
nothing calls this directly
no test coverage detected