When I run the simple example that you have provided, the content of unpacked_len is [1, 1, 1] and the unpacked variable is as shown above.
I expected unpacked_len as [3, 2, 1] and for unpacked to be of size [3x3x2] (with some zero padding) since normally the output will contain the hidden state for each layer as stated in the docs.
output (seq_len, batch, hidden_size * num_directions): tensor containing the output features (h_k) from the last layer of the RNN, for each k.

Is PackedSequence only designed to help the programmer retrieve the last output (i.e. h_n tensor containing the hidden state for k=seq_len)?