I’m unsure where the 29 comes from. Do you mean 129 or 20 or are the “29 columns” created in a special way?
If it’s a typo and you would like to use the 20 channels as the temporal dimension, you could initialize the RNN via batch_first=True, which would expect an input in the shape [batch_size, seq_len, features] and could flatten the conv activation via: x = x.view(x.size(0), x.size(1), -1).
Alternatively, you could also use the default setup in the RNN, which would then expect the input to have the shape [seq_len, batch_size, features] and you would have to permute the tensor into the right shape after flattening the feature dimension.