Actually the original example set a wrong shape for input, that’s why you get 6x1 instead of 3x3.
The original example set shape as [batch_size, 1, max_length], which is obviously wrong
Without packing, you have to unroll your RNN to a fixed length. Then, you will get a fixed length of output. The desired output should have different length, so you have to mask them by yourself.
if you feed your minibatch with packing, the output of each example will have different length, so you don’t have to mask something by yourself.