Releases: WenjieDu/PyPOTS
v0.10🦙LLMs coming
We make the following main updates in this new release:
- added Time-LLM and GPT4TS;
- enabled users to customize their training loss and evaluation metric for models;
- fixed an argument-order error in CRPS loss calculation;
- fixed a bug that data and model not on the same device when applying a list of CUDA devices;
Kudos to our new contributors @c-lyu and @giacomoguiduzzi 👍!
What's Changed
- Fix CRPS loss calculation by @c-lyu in #565
- Fix wrong order of arguments when calling calc_quantile_loss by @WenjieDu in #566
- Enable to customized loss and val funcs by @WenjieDu in #526
- Implement TimeLLM as an imputation model by @WenjieDu in #567
- Make pytest ignore LLM-based testing cases by @WenjieDu in #569
- Enable customizing training loss and val metric, add Time-LLM by @WenjieDu in #570
- Refactor deprecated torch.cuda.amp.autocast by @WenjieDu in #521
- Expose more models for tuning, bump dependency PyGrinder version num, and overwrite torch.autocast by @WenjieDu in #572
- Refactor CSAI imputation & classification by @LinglongQian in #552
- Update docs by @WenjieDu in #573
- Update CSAI, refactor code and update docs by @WenjieDu in #574
- Fix a bug that data and model are not on the same device when CUDA device list is applied by @giacomoguiduzzi in #563
- Update the docs by @WenjieDu in #576
- Fix potential bug that data and model not on the same cuda device, update docs by @WenjieDu in #577
- Implement GPT4TS for time series imputation by @WenjieDu in #579
- Update docs by @WenjieDu in #580
- Including GPT4TS and update docs by @WenjieDu in #581
- Update Docs by @WenjieDu in #582
- Update docs and release v0.10 by @WenjieDu in #583
New Contributors
- @c-lyu made their first contribution in #565
- @giacomoguiduzzi made their first contribution in #563
Full Changelog: v0.9...v0.10
v0.9💫New Algos FITS/SegRNN/CSAI/TRMF
In this release, PyPOTS brings you new models FITS, SegRNN, CSAI, and TRMF. Kudos👍 to our new contributors Shengsheng @lss-1138 and Joseph @joseph-arulraj!
What's Changed
- Add FITS by @WenjieDu in #522
- Update docs and configs by @WenjieDu in #530
- Add FITS imputation model and update docs by @WenjieDu in #531
- CSAI Pipeline by @joseph-arulraj in #534
- add csai test cases by @LinglongQian in #535
- Add SegRNN Implementation by @lss-1138 in #537
- Update docs by @WenjieDu in #538
- Implement SegRNN as an imputation model by @WenjieDu in #539
- Fix CSAI cannot accept dataset files for lazy loading by @WenjieDu in #545
- Update the stale workflow by @WenjieDu in #547
- Add SegRNN testing cases by @WenjieDu in #548
- Update docs for CSAI by @WenjieDu in #549
- Update the stale workflow and docs, add SegRNN tests by @WenjieDu in #550
- Add TRMF imputation method by @AugustJW in #556
- Integrate raw TRMF implementation into PyPOTS by @WenjieDu in #560
- Update docs and dependency versions by @WenjieDu in #561
- Release v0.9 by @WenjieDu in #562
New Contributors
- @joseph-arulraj made their first contribution in #534
- @lss-1138 made their first contribution in #537
Full Changelog: v0.8.1...v0.9
v0.8.1 🪲 Fix model saving issues
We fixed two model-saving issues in some conditions:
- unintended overwrite of the existing model file when calling func
.save()
even with argoverwrite
default to False; model_saving_strategy=best
does not work and pypots still save every better model;
What's Changed
- Fix unintended overwrite saving by @WenjieDu in #516
- Update conda_dev_env.yml by @WenjieDu in #517
- Fix unintended overwrite when saving models and update conda dependencies by @WenjieDu in #518
model_saving_strategy=best
does not work by @WenjieDu in #514- Update docs by @WenjieDu in #523
- Fix model saving issue and update docs by @WenjieDu in #524
- Fix error link to Reformer on openreview by @WenjieDu in #527
- Update docs and release v0.8.1 by @WenjieDu in #528
Full Changelog: v0.8...v0.8.1
v0.8 🚀 New models
We bring you new models ModernTCN (ICLR 2024
), TimeMixer (ICLR 2024
), and TEFN in this release ;-)
Kudos to our new contributors Eljas (@eroell) and Tianxiang (@ztxtech)!
What's Changed
- Update testing workflows and dependencies, and refactor by @WenjieDu in #482
- Update docs by @WenjieDu in #483
- Initialize the client of Gungnir and update docs by @WenjieDu in #484
- Update docs by @WenjieDu in #487
- Update docs by @WenjieDu in #489
- Refactor Gungnir logging and update docs by @WenjieDu in #490
- Allow failure when PR gets merged before jobs get finished by @WenjieDu in #492
- Update docs by @WenjieDu in #493
- Update tsdb.load_dataset to tsdb.load in doc of load_specific_dataset by @eroell in #494
- Doc update Quickstart Example by @eroell in #497
- Update docs by @WenjieDu in #498
- Implement TimeMixer as an imputation model by @WenjieDu in #499
- Update the docs for TimeMixer by @WenjieDu in #500
- Add TimeMixer by @WenjieDu in #501
- Implement ModernTCN as an imputation model by @WenjieDu in #502
- Add ModernTCN docs by @WenjieDu in #503
- Add ModernTCN by @WenjieDu in #504
- Add TEFN model by @ztxtech in #505
- Add TEFN and implement it as an imputation model by @WenjieDu in #507
- Apply line-length=120 to black format by @WenjieDu in #509
- Import random walk funcs from BenchPOTS and add AI4TS as a dependency by @WenjieDu in #510
- Apply line-length=120 to refactor code, update dependencies and pre-commit config by @WenjieDu in #512
New Contributors
Full Changelog: v0.7.1...v0.8
v0.7.1 Fix missing load_specific_dataset()
Previously we removed pypots.data.load_specific_datasets packages since the preprocessing functions have been all gathered and managed in BenchPOTS. The removal caused some incompatibility (see #474), hence we added it back in this minor version. But it still will be deprecated in the near future and we encourage users to use BenchPOTS for dataset preprocessing, which now supports 170+ public time series datasets. Also, we
- added a visualization function to plot the map of attention weights. 👍Kudos to Anshu @gugababa for his contribution;
- deprecated setup.py and added pyproject.toml to config the project;
What's Changed
- Visualize attention matrix in SAITS by @gugababa in #302
- Add attention map visualization func by @WenjieDu in #475
- Gather requirements in one dir by @WenjieDu in #477
- Add toml config and gather dependency files by @WenjieDu in #478
- Add pyproject.toml, gather dependency files, and fix flake8 with toml config file by @WenjieDu in #480
- Fix missing load_specific_dataset(), update testing_daily workflow, release v0.7.1 by @WenjieDu in #481
New Contributors
Full Changelog: v0.7...v0.7.1
v0.7 New Algos & Bug Fix
Update summary for v0.7 release:
- included ImputeFormer [KDD'24], kudos👍 to @tongnie, also the author of ImputeFormer;
- implemented Lerp (Linear Interpolation), thanks👍 to @colesussmeier;
- added TCN as an imputation model, with SAITS embedding and training methodology applied;
- fixed a minor bug in RevIN for POTS data;
- fixed failed model saving when
model_saving_strategy
is set asbetter
; - added
pypots.data.utils.inverse_sliding_window
func to help restore time series samples sliced bysliding_window
func;
What's Changed
- Make the number of max steps adjustable in TimesNet by @WenjieDu in #438
- Enable to restore from
sliding_window()
by @WenjieDu in #441 - Add
inverse_sliding_window()
and enable TimesNet to work with len>5000 samples by @WenjieDu in #442 - Update docs by @WenjieDu in #443
- Use
inspect
to fetch models arguments and update docs by @WenjieDu in #444 - Expose new models for tuning, add get_class_full_path(), and test visual funcs by @WenjieDu in #447
- Update docs by @WenjieDu in #448
- Make classification GRUD more robust, and update docs by @WenjieDu in #449
- Update Imputeformer by @tongnie in #450
- Update docs by @WenjieDu in #452
- Add ImputeFormer, fix RevIN, and update docs by @WenjieDu in #454
- Implement Linear Interpolation (Lerp) Imputation Method by @colesussmeier in #459
- Update docs conf by @WenjieDu in #461
- Add Lerp as an imputation method and update the docs config by @WenjieDu in #462
- Update dependencies in conda env files by @WenjieDu in #463
- Update docs and conda env dependencies by @WenjieDu in #465
- Add TCN as an imputation model by @WenjieDu in #467
- Add TCN and update docs by @WenjieDu in #468
- Fix saving failed when the strategy is 'better' by @WenjieDu in #469
- Use xeLatex engine to avoid Unicode error by @WenjieDu in #472
- Fix failed saving strategy "better", update docs, and release v0.7 by @WenjieDu in #470
New Contributors
- @tongnie made their first contribution in #450
- @colesussmeier made their first contribution in #459
Full Changelog: v0.6...v0.7
v0.6 🔥🪭 Nine New Models
In v0.4 and v0.5, PyPOTS brought you new models. Now, let's fan🪭 the frame🔥 in v0.6!
- Non-stationary Transformer, Pyraformer, Reformer, SCINet, RevIN, Koopa, MICN, TiDE, StemGNN are included in this new release;
- another new PyPOTS Ecosystem library
BenchPOTS
has been released and supports preprocessing pipelines of 170 public time series datasets for benchmarking machine learning on POTS data; - add the argument
verbose
to mute all info level logging;
👍 Kudos to our new contributor @LinglongQian.
Please refer to the changelog below for more details.
What's Changed
- Implement Non-stationary Transformer as an imputation model by @WenjieDu in #388
- Implement Pyraformer as an imputation model by @WenjieDu in #389
- Add Nonstationary Transformer and Pyraformer, update docs by @WenjieDu in #390
- Treat keyboard interruption during training as a warning, and update the docs by @WenjieDu in #391
- Add SCINet modules and implement it as an imputation model by @WenjieDu in #406
- Add RevIN modules and implement it as an imputation model by @WenjieDu in #407
- Add Koopa modules and implement it as an imputation model by @WenjieDu in #403
- Add MICN modules and implement it as an imputation model by @WenjieDu in #401
- Update docs and references by @WenjieDu in #410
- Add TiDE modules and implement it as an imputation model by @WenjieDu in #402
- Add Koopa, SCINet, RevIN, MICN and TiDE, and update the docs by @WenjieDu in #412
- Add StemGNN modules and implement it as an imputation model by @WenjieDu in #415
- Add GRU-D as an imputation model by @WenjieDu in #417
- Update README and docs by @WenjieDu in #420
- Implement StemGNN and GRU-D as an imputation model by @WenjieDu in #421
- Update set_random_seed() by @WenjieDu in #423
- Enable tuning new added models by @WenjieDu in #424
- ETSformer hyperparameters mismatch during NNI tuning by @LinglongQian in #425
- Fix ETSformer tuning bug, and release v0.6rc1 by @WenjieDu in #427
- Add arg
verbose
to control logging by @WenjieDu in #428 - Add Reformer as an imputation model by @WenjieDu in #433
- Add Reformer, add option
version
to control training log, and add benchpots as a dependency by @WenjieDu in #434 - Raise the minimum support python version to v3.8 by @WenjieDu in #436
- Fix linting error by @WenjieDu in #437
Full Changelog: v0.5...v0.6
v0.6 RC
v0.5 🔥 New Models & Features
Here is the summary of this new version's changelog:
- the modules of iTransformer, FiLM, and FreTS are included in PyPOTS. The three have been implemented as imputation models in this version;
- CSDI is implemented as a forecasting model;
MultiHeadAttention
is enabled to manipulate all attention operators in PyPOTS;
What's Changed
- Fix failed doc building, fix a bug in gene_random_walk(), and refactor unit testing configs by @WenjieDu in #355
- Implement CSDI as a forecasting model by @WenjieDu in #354
- Update the templates by @WenjieDu in #356
- Implement forecasting CSDI and update the templates by @WenjieDu in #357
- Update README by @WenjieDu in #359
- Update docs by @WenjieDu in #362
- Implement FiLM as an imputation model by @WenjieDu in #369
- Implement FreTS as an imputation model by @WenjieDu in #370
- Implement iTransformer as an imputation model by @WenjieDu in #371
- Add iTransformer, FreTS, FiLM by @WenjieDu in #372
- Fix failed CI testing on macOS with Python 3.7 by @WenjieDu in #373
- Add SaitsEmbedding, fix failed CI on macOS with Python3.7, and update docs by @WenjieDu in #374
- Fix error in gene_random_walk by @WenjieDu in #375
- Try to import torch_geometric only when init Raindrop by @WenjieDu in #381
- Enable all attention operators to work with
MultiHeadAttention
by @WenjieDu in #383 - Fix a bug in gene_random_walk, import pyg only when initing Raindrop, and make MultiHeadAttention work with all attention operators by @WenjieDu in #384
- Refactor code and update docstring by @WenjieDu in #385
- 添加中文版README文件 by @Justin0388 in #386
- Refactor code and update docs by @WenjieDu in #387
New Contributors
- @Justin0388 made their first contribution in #386
We also would like to thank Sijia @phoebeysj, Haitao @CowboyH, and Dewang @aizaizai1989 for their help in polishing Chinese README.
Full Changelog: v0.4.1...v0.5
v0.4.1 🚧 Refactor&Modularization
In this refactoring version, we
- applied SAITS loss function to the newly added imputation models (Crossformer, PatchTST, DLinear, ETSformer, FEDformer, Informer, and Autoformer) in v0.4, and add the arguments
MIT_weight
andORT_weight
in them for users to balance the multi-task learning; - modularized all neural network models and put their modules in the package
pypots.nn.modules
; - removed deprecated metric funcs (e.g.
pypots.utils.metrics.cal_mae
that has been replaced bypypots.utils.metrics.calc_mae
);
What's Changed
- Apply SAITS loss to newly added models and update the docs by @WenjieDu in #346
- Modularize neural network models by @WenjieDu in #348
- Modularize NN models, remove deprecated metric funcs, and update docs by @WenjieDu in #349
- Remove
pypots.imputation.locf.modules
and add assertions for BTTF by @WenjieDu in #350 - Test building package during CI by @WenjieDu in #353
- Avoid the import error
MessagePassing not defined
by @WenjieDu in #351
Full Changelog: v0.4...v0.4.1