示例#1
0
 def _get_encoded_h(self, xt, BS):
     # Compute encoder RNN hidden states
     h_prime = torch.zeros(1, BS, self.rnn_hidden_dim).to(device)
     hidden_seq, _ = self.rnn_module(xt, h_prime)  # (T, BS, rnn_hidden_dim)
     augmented_hidden_seq = BaseModel.augment_hidden_sequence(
         h_prime, hidden_seq)
     return augmented_hidden_seq
示例#2
0
    def _get_encoded_h(self, xt: torch.Tensor, mask: torch.Tensor, T: int,
                       BS: int):
        """
        Encoder for Forward and Reverse RNN hidden states for Model 2

        :param xt:
        :param mask:
        :return: augmented_hidden_seq, reverse_hidden_seq
        augmented_hidden_seq = [h_prime, h_0, ..., h_{T-1}]
        reverse_hidden_seq = [a_0, a_1, ..., a_{T-1}]
        """
        h_prime = torch.zeros(1, BS, self.rnn_hidden_dim).to(device)
        hidden_seq, _ = self.rnn_module(xt, h_prime)  # (T, BS, rnn_hidden_dim)
        augmented_hidden_seq = BaseModel.augment_hidden_sequence(
            h_prime, hidden_seq)
        reverse_hidden_seq = self._get_reversed_hidden_seq(
            xt, augmented_hidden_seq, mask, T, BS)
        return augmented_hidden_seq, reverse_hidden_seq