Hello everyone.

I’m currently learning to use nn.LSTM with pytorch and a bit confused with the description of the input of the function.

Basically I’m trying to feed my dataset matrix (M x N) as M timesteps, N numbers of features.

Since the dataset is a matrix, I wanted to feed the dataset recursively into the LSTM network with Dataloader(utils.data.Dataset).

The point where i got confused was the size of input (seq_len, batch, input_size)

Let’s say I’m getting my data_loader with batch_size=10.

In order to generate the train_loader with the right form, I had to make the previous size of (M x N) into the size including the sequence_length which could simply be transformed to (M/seq_len, seq_len, N).

Then the input size of my nn.LSTM would be like:

(M/seq_len/batch_size, seq_len, N)

So, my main question comes:

If i feed this data size into the LSTM model nn.LSTM(N, hidden_size),

is the LSTM model automatically doing the “recursive operation” within the sequence of the whole batch?

I wanted to know the actual behavior that’s done within this LSTM layer… anyways the operation should be done recursively within both the sequence, And the batch right?

I’m not sure i made the questionaire clear because this is actually my current status working on this nn.LSTM(quite messed up…lol), hope someone could help me organizing the ideas.

Thanks in advance