It is a pain to do, as implementations with python loop + gradients are slow. You may need something similar to torchaudio.functional.lfilter (that resorts to a C++ loop and doesn’t support backprop I think).



 boris:

Since ES is a local model, each time series in a dataset would require its own set of ES params (alpha, beta, etc.).


Well, options are obvious:

use multiple fixed (never trained) parameter sets, concatenate outputs as an input for a downstream task (e.g. pass them to a rnn layer)
train “amortized” params conditioned on some time series metadata
train “unamortized” params (nn.Embedding lookups by time series id) - with no straightforward way to do out-of-sample predictions