class_docstr: A quantizable long short-term memory (LSTM) cell.
  
  For the description and the argument types, please, refer to :class:`~torch.nn.LSTMCell`
  
  Examples::
  
      >>> import torch.ao.nn.quantizable as nnqa
      >>> rnn = nnqa.LSTMCell(10, 20)
      >>> input = torch.randn(6, 10)
      >>> hx = torch.randn(3, 20)
      >>> cx = torch.randn(3, 20)
      >>> output = []
      >>> for i in range(6):
      ...     hx, cx = rnn(input[i], (hx, cx))
      ...     output.append(hx)
class_docstr_tok: ["A","quantizable","long","short-term","memory","(","LSTM",")","cell",".","For","the","description","and","the","argument","types",",","please",",","refer","to",":","class",":","`","~torch.nn.LSTMCell","`","Examples",":",":",">",">",">","import","torch.ao.nn.quantizable","as","nnqa",">",">",">","rnn","=","nnqa.LSTMCell","(","10",",","20",")",">",">",">","input","=","torch.randn","(","6",",","10",")",">",">",">","hx","=","torch.randn","(","3",",","20",")",">",">",">","cx","=","torch.randn","(","3",",","20",")",">",">",">","output","=","[","]",">",">",">","for","i","in","range","(","6",")",":","...","hx",",","cx","=","rnn","(","input","[","i","]",",","(","hx",",","cx",")",")","...","output.append","(","hx",")"]
code: def forward(
      self, x: Tensor, hidden: Optional[Tuple[Tensor, Tensor]] = None
  ) -> Tuple[Tensor, Tensor]:
      if hidden is None or hidden[0] is None or hidden[1] is None:
          hidden = self.initialize_hidden(x.shape[0], x.is_quantized)
      hx, cx = hidden
  
      igates = self.igates(x)
      hgates = self.hgates(hx)
      gates = self.gates.add(igates, hgates)
  
      input_gate, forget_gate, cell_gate, out_gate = gates.chunk(4, 1)
  
      input_gate = self.input_gate(input_gate)
      forget_gate = self.forget_gate(forget_gate)
      cell_gate = self.cell_gate(cell_gate)
      out_gate = self.output_gate(out_gate)
  
      fgate_cx = self.fgate_cx.mul(forget_gate, cx)
      igate_cgate = self.igate_cgate.mul(input_gate, cell_gate)
      fgate_cx_igate_cgate = self.fgate_cx_igate_cgate.add(
          fgate_cx, igate_cgate
      )
      cy = fgate_cx_igate_cgate
  
      # TODO: make this tanh a member of the module so its qparams can be configured
      tanh_cy = torch.tanh(cy)
      hy = self.ogate_cy.mul(out_gate, tanh_cy)
      return hy, cy
  
imports: import numbers
  from typing import Optional, Tuple
  import warnings
  import torch
  from torch import Tensor
label_desc: Use image node_id 2 for calling the LSTMCell obj's underlying member method code with example usage: obj.forward(x, hidden) and returns: hy,  cy