input, the output will also be a packed sequence. For the
        unpacked case, the directions can be separated using
        "output.view(seq_len, batch, num_directions, hidden_size)",
        with forward and backward being direction 0 and 1
        respectively.
    Similarly, the directions can be separated in the packed case.

  * **h_n** of shape *(num_layers * num_directions, batch,
    hidden_size)*: tensor containing the hidden state for *t =
    seq_len*

    Like *output*, the layers can be separated using
    "h_n.view(num_layers, num_directions, batch, hidden_size)".

Shape:
      * Input1: (L, N, H_{in}) tensor containing input features where
        H_{in}=\text{input_size} and L represents a sequence
        length.
  * Input2: (S, N, H_{out}) tensor containing the initial hidden
    state for each element in the batch.
    H_{out}=\text{hidden\_size} Defaults to zero if not provided.
