So, I’ve trained an LSTM autoencoder to reconstruct time-series data. It’s trained to encode/decode 7-day sub-sequences of the time series.
When I test it on a single subsequence, it reconstructs the data very well. I can also reconstruct the entire time-series by running each sequence through the model in a for-loop. It gets really close, and I’m very happy.
However, what I thought I could do was run all the sequences through the model in parallel by making an input of shape (batch_size, seq_len, n_features)
where seq_len
is my 7 day sub-sequences, and so batch_size = len(timeseries) // seq_len
.
However, the model does not correctly reconstruct the time-series with this method. Why not? Isn’t this exactly how the model trained and updated the gradient?
Thanks!