where S=\text{num_layers} * \text{num_directions} If the RNN
        is bidirectional, num_directions should be 2, else it should
        be 1.
  * Output1: (L, N, H_{all}) where H_{all}=\text{num\_directions}
    * \text{hidden\_size}

  * Output2: (S, N, H_{out}) tensor containing the next hidden
    state for each element in the batch

Variables:
      * weight_ih_l[k] -- the learnable input-hidden weights of
        the \text{k}^{th} layer (W_ir|W_iz|W_in), of shape
        (3hidden_size, input_size) for k = 0. Otherwise, the
        shape is (3hidden_size, num_directions * hidden_size)
  * **weight_hh_l[k]** -- the learnable hidden-hidden weights of
    the \text{k}^{th} layer (W_hr|W_hz|W_hn), of shape
    *(3*hidden_size, hidden_size)*

  * **bias_ih_l[k]** -- the learnable input-hidden bias of the
    \text{k}^{th} layer (b_ir|b_iz|b_in), of shape
    *(3*hidden_size)*
