Forward propagate batch of sequences through the network, without accounting for the state

def forward(self, sequence):
        """ Forward propagate batch of sequences through the network, without accounting for the state """
        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)