diff options
author | Gustaf Rydholm <gustaf.rydholm@gmail.com> | 2022-06-09 22:31:15 +0200 |
---|---|---|
committer | Gustaf Rydholm <gustaf.rydholm@gmail.com> | 2022-06-09 22:31:15 +0200 |
commit | 932ba778df1edf8d7d19a66468b5d4dbfaa1f2c2 (patch) | |
tree | 066e654813787d1b5f45e54ef076a2cf79263064 /text_recognizer/networks/conformer/conformer.py | |
parent | 316c6a456c9b9f1964f77e8ba016651405c6f9c0 (diff) |
Fix conformer
Diffstat (limited to 'text_recognizer/networks/conformer/conformer.py')
-rw-r--r-- | text_recognizer/networks/conformer/conformer.py | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/text_recognizer/networks/conformer/conformer.py b/text_recognizer/networks/conformer/conformer.py index e2dce27..09aad55 100644 --- a/text_recognizer/networks/conformer/conformer.py +++ b/text_recognizer/networks/conformer/conformer.py @@ -11,6 +11,7 @@ class Conformer(nn.Module): def __init__( self, dim: int, + dim_gru: int, num_classes: int, subsampler: Type[nn.Module], block: ConformerBlock, @@ -19,10 +20,16 @@ class Conformer(nn.Module): super().__init__() self.subsampler = subsampler self.blocks = nn.ModuleList([deepcopy(block) for _ in range(depth)]) - self.fc = nn.Linear(dim, num_classes, bias=False) + self.gru = nn.GRU( + dim, dim_gru, 1, bidirectional=True, batch_first=True, bias=False + ) + self.fc = nn.Linear(dim_gru, num_classes) def forward(self, x: Tensor) -> Tensor: x = self.subsampler(x) + B, T, C = x.shape for fn in self.blocks: x = fn(x) + x, _ = self.gru(x) + x = x.view(B, T, 2, -1).sum(2) return self.fc(x) |