class_docstr: Container module for a single RNN layer.
  
  args:
      rnn_type: string, select from 'RNN', 'LSTM' and 'GRU'.
      input_size: int, dimension of the input feature. The input should have shape
                  (batch, seq_len, input_size).
      hidden_size: int, dimension of the hidden state.
      dropout: float, dropout ratio. Default is 0.
      bidirectional: bool, whether the RNN layers are bidirectional. Default is False.
class_docstr_tok: ["Container","module","for","a","single","RNN","layer",".","args",":","rnn_type",":","string",",","select","from","'RNN","'",",","'LSTM","'","and","'GRU","'",".","input_size",":","int",",","dimension","of","the","input","feature",".","The","input","should","have","shape","(","batch",",","seq_len",",","input_size",")",".","hidden_size",":","int",",","dimension","of","the","hidden","state",".","dropout",":","float",",","dropout","ratio",".","Default","is","0.","bidirectional",":","bool",",","whether","the","RNN","layers","are","bidirectional",".","Default","is","False","."]
code: def forward(self, input, state=None):
      # input shape: batch, seq, dim
      # input = input.to(device)
      output = input
      rnn_output, state = self.rnn(output, state)
      rnn_output = self.dropout(rnn_output)
      rnn_output = self.proj(
          rnn_output.contiguous().view(-1, rnn_output.shape[2])
      ).view(output.shape)
      return rnn_output, state
  
file_path: espnet/espnet2/enh/layers/dprnn.py
imports: import torch
  import torch.nn
  from torch.autograd import Variable
label_desc: Use image node_id 2 for calling the SingleRNN obj's underlying member method code with example usage: obj.forward(input, state) and returns: rnn_output,  state