class_docstr: RNNCell 
  gate_multiplier is related to the architecture you're working with
  For LSTM-like it will be 4 and GRU-like will be 3.
  Always assumes input is NOT batch_first.
  Output size that's not hidden size will use output projection
  Hidden_states is number of hidden states that are needed for cell
  if one will go directly to cell as tensor, if more will go as list
class_docstr_tok: ["RNNCell","gate_multiplier","is","related","to","the","architecture","you","'re","working","with","For","LSTM-like","it","will","be","4","and","GRU-like","will","be","3",".","Always","assumes","input","is","NOT","batch_first",".","Output","size","that","'s","not","hidden","size","will","use","output","projection","Hidden_states","is","number","of","hidden","states","that","are","needed","for","cell","if","one","will","go","directly","to","cell","as","tensor",",","if","more","will","go","as","list"]
code: def __init__(
      self,
      gate_multiplier,
      input_size,
      hidden_size,
      cell,
      n_hidden_states=2,
      bias=False,
      output_size=None,
  ):
      super(RNNCell, self).__init__()
  
      self.gate_multiplier = gate_multiplier
      self.input_size = input_size
      self.hidden_size = hidden_size
      self.cell = cell
      self.bias = bias
      self.output_size = output_size
      if output_size is None:
          self.output_size = hidden_size
  
      self.gate_size = gate_multiplier * self.hidden_size
      self.n_hidden_states = n_hidden_states
  
      self.w_ih = nn.Parameter(
          torch.empty(self.gate_size, self.input_size)
      )
      self.w_hh = nn.Parameter(
          torch.empty(self.gate_size, self.output_size)
      )
  
      # Check if there's recurrent projection
      if self.output_size != self.hidden_size:
          self.w_ho = nn.Parameter(
              torch.empty(self.output_size, self.hidden_size)
          )
  
      self.b_ih = self.b_hh = None
      if self.bias:
          self.b_ih = nn.Parameter(torch.empty(self.gate_size))
          self.b_hh = nn.Parameter(torch.empty(self.gate_size))
  
      # hidden states for forward
      self.hidden = [None for states in range(self.n_hidden_states)]
  
      self.reset_parameters()
  
imports: import torch
  import torch.nn
  from torch.autograd import Variable
  import torch.nn.functional
  import math
label_desc: Use image node_id 1 to create a new RNNCell object from inherited base classes: nn with example: obj = RNNCell(gate_multiplier, input_size, hidden_size, cell, n_hidden_states, bias, output_size)