I am new to Autoencoders and I am a bit confused on which model to try for my situation and what is the difference between all the different models I have seen in tutorials.

So, I have a set of time-series of a certain length w, so my input dataset X has a shape (5000,50,1), where 5000 is the amount of small time-series and w=50.

I have seen the following options:

  1. LSTM -> Dense -> Linear Activation. For me it seems that the decoding layer is missing here. Or this would still work?
  2. LSTM(64) -> RepeatVector(w) -> LSTM(w). This one gives me the error, because it's output seems to be of shape (None, w, w), while I would actually expect (None, w, 1), corresponding to the original input. How to fix this problem? Or it is actually supposed to be like that and I just don't understand something about Autoencoders? Here is the code that I used:

def create_model(): model = Sequential() model.add(LSTM(64, input_shape=(w,1))) model.add(RepeatVector(w)) model.add(LSTM(w, return_sequences=True)) return model

  1. Same architecture but divided into separate Encoder and Decoder model. I haven't tried this because I would prefer just one model. Or is this option also worth trying?



Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.