Beispiel #1
0
    def forward(self, x: torch.Tensor) -> Tuple[torch.Tensor, torch.Tensor]:
        if self.training:
            m = x.bernoulli(self._word_dropout_ratio)
            x = torch.where(m == 1, torch.tensor(0).to(x.device), x)

        static = self._static(x).permute(0, 2, 1)
        non_static = self._non_static(x).permute(0, 2, 1)
        return static, non_static
Beispiel #2
0
    def forward(self, x: torch.Tensor) -> torch.Tensor:
        if self.training:
            m = x.bernoulli(self._word_dropout_ratio)
            x = torch.where(m == 1, torch.tensor(0).to(x.device), x)

        embedding = self._embedding(x).permute(0, 2, 1)

        r = self._conv(embedding)
        r = F.relu(r)
        r = self._maxpool(r)
        r = self._conv1(r)
        r = F.relu(r)
        r = self._maxpool1(r)
        r = r.permute(0, 2, 1)

        _, r = self._bilstm(r)
        feature = torch.cat([*r[0]], dim=1)
        r = self._dropout(feature)
        score = self._fc(r)
        return score