tensor containing input features
  * **h_0** of shape *(batch, hidden_size)* or *(hidden_size)*:
    tensor containing the initial hidden state

  * **c_0** of shape *(batch, hidden_size)* or *(hidden_size)*:
    tensor containing the initial cell state

    If *(h_0, c_0)* is not provided, both **h_0** and **c_0**
    default to zero.

Outputs: (h_1, c_1)
      * h_1 of shape (batch, hidden_size) or (hidden_size):
        tensor containing the next hidden state
  * **c_1** of shape *(batch, hidden_size)* or *(hidden_size)*:
    tensor containing the next cell state

Variables:
      * weight_ih (torch.Tensor) -- the learnable input-hidden
        weights, of shape (4hidden_size, input_size)*
  * **weight_hh** (*torch.Tensor*) -- the learnable hidden-hidden
    weights, of shape *(4*hidden_size, hidden_size)*

  * **bias_ih** -- the learnable input-hidden bias, of shape
    *(4*hidden_size)*
