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
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