zalandoresearch / pytorch-ts

PyTorch based Probabilistic Time Series forecasting framework based on GluonTS backend
MIT License
1.22k stars 191 forks source link

Relation to gluonts #7

Closed jaschau closed 4 years ago

jaschau commented 4 years ago

First of all, thanks a lot for the interesting paper and for open-sourcing the corresponding model!

I was wondering about the precise relation of this project to gluonts. In the readme you're saying that this project uses gluonts for data loading, transformations etc., but looking at the source code, it seems like you essentially did a port of the existing gluonts code to pytorch? So in that sense you're using the gluonts API and if I have some function (like a transform) coded for gluonts, chances are that it is compatible with this project due to python's duck typing? Is this the correct understanding?

jaschau commented 4 years ago

I've seen that you filed an issue in the gluonts repository https://github.com/awslabs/gluon-ts/issues/686#issue-573032910, @kashif, where you documented the necessary changes to make gluonts compatible with different backends. I think it would be great if we could avoid duplicating models across different projects, but I guess enabling support for other backends in gluonts is both challenging and not a top priority. Did you discuss anything in this regard with the gluonts maintainers?

kashif commented 4 years ago

@jaschau yes so gluonts consists of numpy based time series loading, transforming and evaluation together with MxNet/gluon models and I took the numpy bits from gluonts and made it work with PyTorch based models. The API is essentially the same and any numpy/pandas based aspects from gluonts should just work here too. Hope that clears up your questions.

Ideally it would great if I could depend on some core gluonts library (as my issue there allude to) and that way one could have other backend models in Tensorflow or Jax etc. I'm not sure how much of a priority that is for them. Hope that clears up your question?

jaschau commented 4 years ago

Thanks for the feedback. That indeed answers my question well. I'd suggest adding your answer to the readme to avoid confusion with potential users.

I really like the choice to maintain compatibility in terms of data loading, since I have some existing multivariate dataset with a trained (gluonts) deepar model that already perfoms reasonably well. I'm very curious to give your implementation a try!