# Do linear layer after GRU saved the sequence output order?

I'm dealing with the following senario:

• My input has the shape of: [batch_size, input_sequence_length, input_features] where:

input_sequence_length = 10

input_features = 3

• My output has the shape of: [batch_size, output_sequence_length] where:

output_sequence_length = 5

i.e: for each time slot of 10 units (each slot with 3 features) I need to predict the next 5 slots values.

I built the following model:

import torch
import torch.nn as nn
import torchinfo

class MyModel(nn.Module):
def __init__(self):
super(MyModel, self).__init__()

self.GRU = nn.GRU(input_size=3, hidden_size=32, num_layers=2, batch_first=True)
self.fc  = nn.Linear(32, 5)

def forward(self, input_series):

output, h = self.GRU(input_series)
output    = output[:,  -1, :]       # get last state
output    = self.fc(output)
output    = output.view(-1, 5, 1)   # reorginize output
return output

torchinfo.summary(MyModel(), (512, 10, 3))

==========================================================================================
Layer (type:depth-idx)                   Output Shape              Param #
==========================================================================================
MyModel                                  [512, 5, 1]               --
├─GRU: 1-1                               [512, 10, 32]             9,888
├─Linear: 1-2                            [512, 5]                  165
==========================================================================================


I'm getting good results (very small MSE loss, and the predictions looks good),

but I'm not sure if the model output (5 sequence values) are really ordered by the model ? i.e the second output based on the first output and the third output based on the second output ...

I know that the GRU output based on the learned sequence history. But I'm also used linear layer, so is the output (after the linear layer) still sorted by time ?