class_docstr: RNNBlock with output layer.
  
  Arguments
  ---------
  input_size : int
      Dimensionality of the input features.
  hidden_channels : int
      Dimensionality of the latent layer of the rnn.
  num_layers : int
      Number of the rnn layers.
  out_size : int
      Number of dimensions at the output of the linear layer
  rnn_type : str
      Type of the the rnn cell.
  dropout : float
      Dropout rate
  bidirectional : bool
      If True, bidirectional.
  
  Example
  ---------
  >>> x = torch.randn(10, 100, 64)
  >>> rnn = SBRNNBlock(64, 100, 1, 128, bidirectional=True)
  >>> x = rnn(x)
  >>> x.shape
  torch.Size([10, 100, 128])
docstr: Returns the transformed output.
  
  Arguments
  ---------
  x : torch.Tensor
      [B, L, N]
      where, B = Batchsize,
             N = number of filters
             L = time points
docstr_tok: ["Returns","the","transformed","output",".","Arguments","--","--","--","--","-","x",":","torch.Tensor","[","B",",","L",",","N","]","where",",","B","=","Batchsize",",","N","=","number","of","filters","L","=","time","points"]
code: def forward(self, x):
      """Returns the transformed output.
  
      Arguments
      ---------
      x : torch.Tensor
          [B, L, N]
          where, B = Batchsize,
                 N = number of filters
                 L = time points
      """
      rnn_out = self.mdl(x)[0]
      out = self.out(rnn_out)
      return out
  
imports: import torch
  import torch.nn
  from speechbrain.lobes.models.dual_path import select_norm
  from speechbrain.lobes.models.transformer.Transformer import TransformerEncoder, PositionalEncoding, get_lookahead_mask
  import speechbrain.nnet.RNN
  import copy
label_desc: Use image node_id 2 for calling the SBRNNBlock obj's underlying member method code with example usage: obj.forward(x) and returns: out