Thanks for your detailed response!
2.1:
I understand the first remark (about the sequence lengths). I don’t how I could make use of these hidden states. The output of lstm is: output, (h_n, c_n), and the output of GRU is: output, h_n. I thought output is the only relevant output for learning tasks, for example we can apply fully connected layers on the output. How would I make use of h_n?
2.2:
Okay so yea I want it to be processed together so that it is efficient, but I want to output to be as if I did not pass them together. So for example if I have two sequences Seq1 and Seq2, and pass them independently through the same LSTM the outputs would be LSTM(Seq1) and LSTM(Seq2). Can I extract the same outputs if I pass the sequences as a packed sequence (like how I can extract the individual outputs of a batch when passing a batch of inputs through a standard fully connected layer)?
3:
I see I have not heard about these until now. I will look into this!
Edit: do you recommend using GRU instead of LSTM?
Edit2: I have verified 2.2. This is correct and no longer needs an answer.