I have a problem about the how to fit my data into a LSTM model.

The shape of the training features is: torch.Size([1899, 14, 30491]) and the shape of training labels is: torch.Size([1899, 30490]). 14 is the window size and 30491 is the 30490 products in a shop plus 1extra 0/1 feature. 1899 is the time series that 1899 days.

I know keras this can be simply written as

```
regressor = Sequential()
# Adding the first LSTM layer and some Dropout regularisation
layer_1_units=40
regressor.add(LSTM(units = layer_1_units, return_sequences = True, input_shape = (X_train.shape[1], X_train.shape[2])))
```

The X_train.shape[1] is 14, the X_train.shape[2] is 30491.

My model in pytorch is:

```
class M5_predictor(nn.Module):
def __init__(self, in_features, out_features, n_hidden, n_layers, dropout):
super(M5_predictor, self).__init__()
self.n_layers = n_layers
self.n_hidden = n_hidden
self.linear = nn.Linear(n_hidden, out_features)
#self.drop = dropout
#self.sigmoid = nn.Sigmoid()
self.rnn1 = nn.LSTM(input_size=in_features,
hidden_size=n_hidden
#num_layers=n_layers,
)
def forward(self, in_data):
#print(in_data.view(in_data.shape[1], in_data.shape[0], in_data.shape[2]).shape)
batch_size, seq_len, in_features = in_data.size()
rnn_out, hidden = self.rnn1(in_data)
output = self.linear(rnn_out)
return output
```

```
n_hidden = 40
n_layers = 1
dropout = 0.2
lr = 0.001
in_features = 30491
out_features = 1
# build model
criterion = nn.MSELoss()
model = M5_predictor(in_features, out_features, n_hidden, n_layers, dropout).to(device)
optimizer = Adam(model.parameters(), lr=lr)
```

How can I modify my code on pytorch that let the data fit the model and give outputs with shape (batch_size, 30490)