Solved by vdw in post #2 
              
              
                If you’re interested in the last hidden state, i.e., the hidden state after the last time step, I wouldn’t bother with gru_out and simply use hidden (w.r.t. to your examples). According to the docs: 

hidden.shape = (num_layers*num_directions, batch, hidden_size)
layers can be separated using  h_n.v…