Overview
We're happy to release gluonts version 0.13! This release contains a few new features and breaking changes compared to 0.12, especially around PyTorch models, data handling and model evaluation:
- Added Support for PyTorch 2.0 , Lightning 2.0, Pandas 2.0.
- New, more ergonomic model evaluation routines were added in #2673 (see the PR description for details on how to use those).
- New PyTorch-based models, including PatchTST (#2748), and other torch-models-related breaking changes and improvements like #2603, #2614, #2628, #2688, and #2618.
- Faster PandasDataset (#2663, #2665, #2860)
There are several more improvements and fixes compared to 0.12, which you can find in the changelog below. This release was possible thanks to the great work of several contributors: @jaheba, @MarcelK1102, @lostella, @gorold, @kashif, @dcmaddix, @abdulfatir, @melopeo, @huibinshen, @shchur, @pablovicente, @Gandor26, @Linbo-Liu. Thanks everyone, and thanks to users and authors of issue reports for the precious feedback!
Changelog
Breaking changes
- Add transform.Valmap, improve transform.Chain. (#2629)
- make Pytorch scaler's forward API consistent (#2627)
- Remove torch specific Dataloader, remove num_workers from torch models. (#2628)
- Pass prediction inputs as dict. (#2646)
- Simplify scalers, move to gluonts.torch.scaler (#2632)
- Remove TimeSeriesSlice (#2680)
- Add model.Input. (#2684)
- Remove FallbackPredictor. (#2686)
- Move model init to lightning module. (#2688)
- torch.SimpleFeedForward: Rename context to past_target. (#2704)
- Fix style and type issues (#2711)
- Fix off-by-one in torch DeepAR (#2618)
- Remove dataset.Schema. (#2798)
- Simplify univariate R wrapper (#2830)
- Simplify plotting of forecasts. (#2864)
Major improvements or new features
- Expose weight_decay in torch TFT estimator class (#2603)
- Allow ReduceLROnPlateau to track val_loss when validation set is available (#2614)
- Add wrapper for Nixtla/hierarchicalforecast (#2591)
- Add zebras freq/period. (#2651)
- Faster index building in PandasDataset (#2663)
- Speed up PandasDataset.from_long_dataframe (#2665)
- Add zebras.TimeFrame. (#2672)
- Allow PyTorch 2.0 (#2724)
- Fix Pandas 2.0 compatibility issues (#2710)
- Allow PyTorch Lightning 2.0 (#2728)
- Add itertools.PickleCache. (#2756)
- Add Monash repository datasets (#2771)
- Merge zebras from proof of concept branch. (#2776)
- Add interface to gluonts.ev (#2673)
- Zebras: Add from_pandas classmethods to TimeFrame and Periods. (#2807)
- Zebras: Improve TimeFrame.split. (#2808)
- Zebras: Add TimeFrame.rename. (#2810)
- Zebras: Add TimeFrame.rolsplit. (#2809)
- Add fourier.arima for long seasonal time series (#2789)
- Add patch-TST, D-Linear and a new lag-TST model (#2748)
Minor improvements or new features
- Rework torch MeanScaler. (#2600)
- Add dataset.loader.as_stacked_batches. (#2638)
- Add Cyclic.stream. (#2639)
- Add Wiki 2000 dataset (#2642)
- Make hierarchicalforecast a single module. (#2666)
- Add itertools.pluck_attr. (#2668)
- Add itertools.power_set (#2682)
- Allow axis to be a tuple in ev.aggregations (#2681)
- Export torch models in torch module directly. (#2685)
- Add zebras resize. (#2705)
- improve comprehension list style (#2715)
- Improve check for validation loop in lightning modules (#2726)
- Add warning for "object" features in PandasDataset (#2731)
- Remove usage of glide in tsf-reader. (#2737)
- Add cdf and icdf to torch NegativeBinomial distribution (#2749)
- Reduce depth of get_dataset import (#2796)
- Reduce depth of gluonts.dataset.repository imports in code and docs (#2803)
- Fix: remove multiprocessing from TSFReader (#2806)
- Add maybe stub file. (#2811)
- Add SizedIterableSlice, an IterableSlice that supports len() (#2815)
- add validated to DeepNPTS (#2823)
- Refactor base metrics computation in Evaluator class (#2825)
- Remove second call to create_lightning_module on torch estimator (#2834)
- Ingore hidden files in FileDataset by default. (#2847)
- Add --compression argument to arrow writer cli. (#2848)
- Zebras: handling of weekday offsets. (#2849)
- Zebras: Add unix_epoch method to Period and Periods. (#2851)
- Zebras: Improve equality for Periods. (#2857)
- Add join_items to itertools. (#2859)
- Zebras: Add eq_to to TimeFrame. (#2858)
- Zebras: Add eq_shape to TimeFrame. (#2863)
- Zebras: Allow to slice TimeFrame using plain strings for time info. (#2865)
- Zebras: Add TimeSeries.to_numpy. (#2866)
- Cache groupby result in PandasDataset (#2860)
- Add feat_static_cat for TSF datasets (#2871)
Bug fixes
- Ensure dtype on feat_time in torch DeepAR. (#2596)
- Add assertion to split function ensuring valid windows (#2587)
- Fix bug with static cardinalities in PandasDataset (#2599)
- Add gluonts.util.safe_extract (#2606)
- Expose aggregation method in ensemble NBEATS, fix forecast shape (#2598)
- Fix incorrect import in tsbench, apply latest black (#2613)
- Fix: torch PoissonOutput scaling (#2619)
- Remove dataclasses requirement (#2623)
- Implement equals for init_passed_kwargs. (#2630)
- Fix bugs in MeanScaler (#2633)
- Fix validation_data usage in torch. (#2643)
- Fix norm-freq to consider freq starts. (#2645)
- Fix call to extractall (#2648)
- Delay instantiation of ScipyStudentT object (#2660)
- Fix DateSplitter when split date is before start (#2670)
- Remove creation of ragged sequences in MultivariateGrouper (#2671)
- Fix ev.seasonal_error (#2696)
- Fix zebras period time features. (#2700)
- Update hierarchicalforecast for new release (#2709)
- Fix DistributionForecast failure on GPU (#2714)
- Fix version location for sdist. (#2729)
- Fix validation loop check for Lightning modules (#2733)
- Fix version cmdclass handling. (#2735)
- Fix: use non-strict inequality in definition of coverage (#2738)
- Fix MXNet NOPScaler (#2744)
- Fix dataset file discovery. (#2777)
- Fix: Loading of nested paths in FileDataset. (#2779)
- Prophet: Pass 'item_id' and 'info' to forecast. (#2780)
- Avoid zero scale in StudentTOutput (#2791)
- Zebras: time length fixes. (#2799)
- Remove .to_timestamp() to fix interval plotting (#2800)
- Fix pd.Period serialization (#2827)
- Fix torch DeepAREstimator in case context_length=1 (#2841)
Documentation
- Fix installation docs, fix typos in docstrings (#2625)
- Fix r-forecast doc strings (#2669)
- Add doctests. (#2683)
- Fix MultivariateEvaluator docstrings (#2693)
- Docs: minor spelling fix (#2701)
- Docs: Add extra requirements. (#2732)
- Update Available Models (#2740)
- Update REFERENCES.md (#2824)
- Update plotting in readme example. (#2867)
- Docs: Fix and simplify tutorials. (#2869)
- Docs: Fix black formatting of % instructions. (#2870)
- Docs: Add download link to notebooks. (#2872)
- Docs: Use torch DeepAR in README. (#2874)
Test / setup changes
- Fix version in requirements to comply with stricter setuptools. (#2604)
- Test: Increase timeout for xgboost tests. (#2601)
- Ignore warnings in tests. (#2620)
- Test: Remove -v option from pytest. (#2631)
- Add hierarchicalforecast to github workflows. (#2659)
- Make nursery tests opt-in. (#2667)
- Add test for torch models tracing (#2658)
- Relax pandas requirement to include pandas 2.x. (#2713)
- Update CP-Flow fork as extra dependency for MQF2 (#2727)
- Add scipy requirement (#2745)
- Fix pandas removed deprecations in tests (#2778)
- Test: Set caplog level for shell tests. (#2786)
- Bump numpy from 1.19.2 to 1.22.0 in /src/gluonts/nursery/daf (#2787)
- Update setuptools and wheel in test workflow (#2802)
- Bump torch from 1.6.0 to 1.13.1 in /src/gluonts/nursery/daf (#2788)
- Add test workflow for R based models (#2814)
- Add tests for hierarchical model to R workflow (#2819)
- Move notebook compilation logic to docs workflow (#2831)
- Fix bug in docs workflow (#2836)
- Fix docs workflow further (#2837)
- Fix string literal in docs workflow (#2839)
- Update action to configure AWS credentials (#2873)
Others
- Move NPTS back to gluonts.model (#2597)
- Remove mxnet from default dataset path (#2635)
- Roll back MQF2 import (#2687)
- add DAF source code (#2769)
- Add code for multivariate attack paper (#2697)
- Update wiki2k tarball path (#2805)
- [Nursery] CoP-DeepAR: Model for temporal hierarchical forecasting (#2812)
- Cop deepar: Reset the no. of epochs to the default value (#2813)
- Guard scripts execution in nursery (#2832)