code: def forward(self, sequence):
          
          data = self.input_block(sequence)
  
          for idx in range(len(self.rnn_layers)):
              data, _ = self.rnn_layers[idx](data)
  
              if self.rnn_dropout_layers:
                  data = self.rnn_dropout_layers[idx](data)
  
          # We are interested only in the last element of the sequence
          if self.bidirectional:
              last_hidden_size = self.rnn_layers_sizes[-1]
              data = torch.cat([data[:, -1, :last_hidden_size], data[:, 0, last_hidden_size:]], dim=1)
          else:
              data = data[:, -1]
  
          for idx in range(len(self.linear_layers_sizes)):
              data = F.relu(self.linear_layers[idx](data))
  
              if self.linear_dropout_layers:
                  data = self.linear_dropout_layers[idx](data)
  
          data = self.output_layer(data)
  
          return self.output_activation(data)
docs: Forward propagate batch of sequences through the network, without accounting for the state