tejaslodaya / timeseries-clustering-vae

Variational Recurrent Autoencoder for timeseries clustering in pytorch
GNU General Public License v3.0
459 stars 81 forks source link

Is your code a replication study of the paper 'Variational Recurrent Auto-encoders'? #1

Closed hellojinwoo closed 5 years ago

hellojinwoo commented 5 years ago

Your github repository timeseries-clustering-vae names the paper 'VRAE' as one of references. You know we already have the codes of the paper written by the author and you can see it on this github repository

Can I consider yours as the Pytorch version of the author's code? The author's code is written with the deep learning framework Theano which I do not know how to use, so I was happy to see your code.

Thank you for your wonderful codes. It's very readable

tejaslodaya commented 5 years ago

Hi @hellojinwoo

Please have a look at these comments on Rob's PR: https://github.com/RobRomijnders/AE_ts/issues/8

And to answer your question, there are a few differences.

  1. The loss function in the original paper uses Binary CrossEntropy which frames the problem as a binary classification problem. I give an option to choose between SmoothL1Loss and MSELoss which frames the problem as regression problem
  2. As noted, the original paper's code is in theano, here's tensorflow version: https://github.com/RobRomijnders/AE_ts and mine is Pytorch version.
  3. Threshold based clipping in original version. Gradient normalized version of clipping in my version. clip_coef = max_norm / (total_norm + 1e-6) in my case.

Also, option provided for multi-layer LSTM/GRU provided in my version whereas the original version is static and uses RNN. We had used RNN for our evaluation, but LSTM turned out to be better.

Let me know in case you had more questions.