Releases: WenjieDu/PyPOTS
v0.3.2 🐞 Bugfix
- fixed an issue that stopped us from running Raindrop on multiple CUDA devices;
- added Mean and Median as naive imputation methods;
What's Changed
- Refactor LOCF, fix Raindrop on multiple cuda devices, and update docs by @WenjieDu in #308
- Remind how to display the figs rather than invoking plt.show() by @WenjieDu in #310
- Update the docs and requirements by @WenjieDu in #311
- Fixing some bugs, updating the docs and requirements by @WenjieDu in #312
- Make CI workflows only test with Python v3.7 and v3.11 by @WenjieDu in #313
- Update the docs and release v0.3.2 by @WenjieDu in #314
- Add mean and median as imputation methods, and update docs by @WenjieDu in #317
Full Changelog: v0.3.1...v0.3.2
v0.3.1
A bug in the calculation of the delta matrix (time-decay matrix) discussed in #294 gets fixed in this update.
What's Changed
- Update logo URLs by @WenjieDu in #293
- Fixing the issue in delta calculation by @WenjieDu in #297
- Fixing the issue in time-decay matrix calculation and simplify the code by @WenjieDu in #298
- Roll back the delta calculation of M-RNN to the same with GRU-D by @WenjieDu in #300
Full Changelog: v0.3...v0.3.1
v0.3 coming with new features 😎
Happy New Year, dear friends! 🥳
New features and updated APIs in PyPOTS are brought to you here! In v0.3, we
- added TimesNet as an imputation model;
- simplified the structure of
val_set
. In previous versions, you had to giveindicating_mask
in the dictionaryval_set
that tells PyPOTS to use which values to validate the model. Now you only need to giveX_ori
(i.e.X_intact
before) andX
, both leaving their missing data as NaNs. PyPOTS will handle everything left to evaluate the model for you; - enabled PyPOTS to tune hyperparameters for external models (implemented with the PyPOTS framework but haven't been integrated into PyPOTS);
- updated the package
pypots.data.saving
. Separated the functions for pickle saving and h5py saving, and addedload_dict_from_h5
that can inverse (deserialize) the process ofsave_dict_into_h5
; - fixed some bugs (#255, #263, #266, #280, #282, #286, #289);
What's Changed
- Code refactor by @WenjieDu in #251
- Adding TimesNet as an imputation model by @WenjieDu in #252
- Adding TimesNet, refactoring code, and updating docs by @WenjieDu in #253
- Fixing CSDI gtmask bug by @WenjieDu in #255
- Fixing CSDI
gt_mask
issue, and setting a fixed random seed for testing cases by @WenjieDu in #256 - Making CSDI return all n_sampling_times imputation samples by @WenjieDu in #258
- Adding get_random_seed(), and adding func calc_quantile_crps() by @WenjieDu in #260
- Making CSDI val process same as the original by @WenjieDu in #262
- Fix missing argument attn_dropout in imputation Transformer by @WenjieDu in #263
- Adding visualization functions by @AugustJW in #267
- Add cluster plotting functions in pypots.utils.visualization by @vemuribv in #182
- Fixing unstable nonstationary norm, adding
utils.visual
, and doing some code refactoring by @WenjieDu in #266 - Updating package
pypots.data.saving
by @WenjieDu in #268 - Enabling to tune hyperparameters for outside models implemented with PyPOTS framework by @WenjieDu in #269
- Simplifying the structure of val_set, and using a consistent strategy when lazy-loading val_set by @WenjieDu in #272
- Renaming X_intact into X_ori, and adding matplotlib as a dependency by @WenjieDu in #274
- Simplifying val_set, renaming X_intact, and adding unit tests for the visual package by @WenjieDu in #275
- Update GP-VAE by @WenjieDu in #277
- Updating GP-VAE, adding load_dict_from_h5, etc. by @WenjieDu in #278
- Adding _check_inputs() for error calculation functions by @WenjieDu in #279
- Fixing CSDI, adding placeholder for epoch num in logging by @WenjieDu in #280
- Fixing the infinite loop in LOCF by @WenjieDu in #282
- Update docs by @WenjieDu in #285
- Updating docs, fixing CSDI&LOCF&MRNN, and adding the strategy to save all models by @WenjieDu in #284
- Making PyPOTS able to save all models during training, checking if d_model=n_heads*d_k for SAITS and Transformer by @WenjieDu in #287
- Fixing MRNN by @WenjieDu in #286
- Fix issues in MRNN and update the hyperparameter tuning functionality by @WenjieDu in #288
- Fixing the type error of random_seed in pypots.cli.tuning and updating the docs by @WenjieDu in #289
- Updating load_dict_from_h5() by @WenjieDu in #290
Full Changelog: v0.2.1...v0.3
v0.2.1
Here are updates,
- for missing values after LOCF imputation (that are missing since the first step hence LOCF doesn't work), we added more options to handle them. Please refer to the argument
first_step_imputation
in LOCF docs. The default option is "zero" in previous versions, but we've changed it to "backward" which is more reasonable; - enabled SAITS to return latent attention weights from blocks in predict() for advanced analysis e.g. in #178;
- renamed model saving and loading functions save_model() and load_model() into save() and load();
What's Changed
- Check if X_intact contains missing data for imputation models, check and list mismatched hyperparameters in the tuning mode by @WenjieDu in #234
- Make SAITS return attention weights in predict() by @WenjieDu in #239
- Adding other options for the first step imputation in LOCF by @WenjieDu in #240
- Fixing the problem about staling issues by @WenjieDu in #244
- Testing with Python 3.11 and support it by @WenjieDu in #246
- Rename save_model() and load_model() into save() and load() by @WenjieDu in #247
- Refactoring save_model() and load_model(), and updating docs by @WenjieDu in #249
Full Changelog: v0.2...v0.2.1
PyPOTS v0.2 🤗
In PyPOTS v0.2 this new version, we
- enabled hyperparameter tuning for all NN algorithms;
- fixed a bug in the updating strategy of term
F
in CRLI; - replaced the license GPL-v3 with BSD-3-Clause that has less constraints;
- announced PyPOTS ecosystem;
What's Changed
- Adding tsdb and pygrinder into the docs by @WenjieDu in #212
- Fixing disappeared TSDB and PyGrinder by @WenjieDu in #213
- Replacing PyCorruptor with PyGrinder by @WenjieDu in #215
- Merge the docs of PyPOTS ecosystem, and replace pycorruptor with pygrinder in pypots by @WenjieDu in #216
- Clone TSDB and PyGrinder repos to use their latest code and docs by @WenjieDu in #217
- Install from source code to use the latest docs of TSDB and PyGrinder by @WenjieDu in #219
- Install from TSDB and PyGrinder repos to use their latest docs by @WenjieDu in #220
- Enable hyperparameter tuning with NNI framework by @WenjieDu in #221
- Fixing dependency error in testing_CI workflow by @WenjieDu in #223
- Enable hyperparameter tuning with NNI, fix dependency error in testing_CI, and update docs by @WenjieDu in #224
- Fix the bug in the updating strategy of term
F
in CRLI by @WenjieDu in #226 - Apply BSD-3 license, and update docs by @WenjieDu in #228
- Fix a bug in CRLI, switch to BSD-3 license by @WenjieDu in #229
- Update version limitations on dependencies, and install dependencies in PyPI publishing workflow by @WenjieDu in #230
Full Changelog: v0.1.4...v0.2
v0.1.4
In this new version, we made the following changes:
- added the imputation model CSDI;
- added the unified method
predict()
for all models to run inference on the given test set; - enabled clustering algorithms to select the best model on the validation set;
- fixed the bug that GP-VAE failed to run on CUDA devices;
- made SAITS to use customized loss function specified by users;
What's Changed
- Add the method predict() for all models by @WenjieDu in #199
- Refactor algorithms' module structure, enable customized loss function in SAITS, enable GP-VAE to run on CUDA, etc. by @WenjieDu in #201
- Merge dev into main by @WenjieDu in #202
- Make clustering algorithms to select the best model according to the loss on a given validation set by @WenjieDu in #204
- Fixing failed CI testing due to dependency installation error by @WenjieDu in #206
- Adding the model CSDI by @WenjieDu in #208
- Refactoring, and updating the docs by @WenjieDu in #209
- Adding CSDI, updating the docs by @WenjieDu in #210
Full Changelog: v0.1.3...v0.1.4
v0.1.3
In this release, we mainly
- added new models US-GAN and GP-VAE for the imputation task on POTS data;
- appended util functions
save_dict_into_h5()
to help users directly save a dataset from a Python Dictionary into an HDF5 file that can be used by models in PyPOTS with lazy-loading strategy to save RAM and CUDA memory; - added internal clustering validation measures to help evaluate clustering models;
- enabled PyPOTS clustering models to return their latent representation for advanced analysis, e.g. internal clustering validation;
- added learning-rate schedulers for optimizers;
👍 Kudos to our new contributors, @AugustJW and @vemuribv! The above points 1 and 3 are implemented by them that enrich this release and make it happen here.
😎 More awesome features are on the road. Stay tuned or join us to make them happen!
What's Changed
- Adding the package to store frequently-used modules; by @WenjieDu in #170
- feat: add Transformer encoder, decoder, and decoder_layer; by @WenjieDu in #172
- Adding the package
pypots/modules
, and appending modules of vanilla Transformer by @WenjieDu in #173 - Add internal clustering validation measures to pypots.utils.metrics by @vemuribv in #179
- Add save_dict_into_h5() and sliding_window(), add
.gitignore
, and update the docs by @WenjieDu in #180 - Merge
dev
intopr/176
by @WenjieDu in #181 - Fixing failed doc build by @WenjieDu in #186
- Fixing the failed workflow
Autoreply to Issues Opened for PyPOTS
and update the PR template by @WenjieDu in #184 - Merge dev into main by @WenjieDu in #188
- add models GP-VAE/USGAN by @AugustJW in #176
- Refactor testing cases by @WenjieDu in #189
- Add models US-GAN and GP-VAE, update docs, refactor testing cases, add cal_internal_cluster_validation_metrics() by @WenjieDu in #190
- Extract latent from clustering models by @WenjieDu in #192
- Add internal and external cluster validation funcs, and enable CRLI and VaDER to return latent for advanced analysis by @WenjieDu in #193
- Add learning-rate schedulers by @WenjieDu in #195
- Add learning-rate schedulers for optimizers, and by @WenjieDu in #196
- Releasing v0.1.3; by @WenjieDu in #197
New Contributors
Full Changelog: v0.1.2...v0.1.3
v0.1.2
In this new version, we mainly fix some bugs, update the docs, and update TSDB changed APIs to keep compatible with it.
What's Changed
- Update logging, and fix the error in the usage example by @WenjieDu in #131
- Fix single-item device list throwing an error by @MaciejSkrabski in #133
- Fix the single-item device list error, update docs by @WenjieDu in #134
- Specifying the version of protobuf<=4.21.12 to fix issue #135 by @WenjieDu in #136
- Update docs and citation info by @WenjieDu in #140
- Fix daily testing by @WenjieDu in #143
- Fixing failed daily testing with MacOS python 3.7, and update docs by @WenjieDu in #144
- Update docs by @WenjieDu in #148
- Fixing the bug in raindrop when running on multiple devices by @WenjieDu in #149
- Updating docs, and fixing the bug in raindrop when running on multiple devices by @WenjieDu in #150
- Fixing the invalid badge of PyPI downloads by @WenjieDu in #152
- Updating stale workflow, and updating docs by @WenjieDu in #154
- Update actions/stale@v8, and fix docs typo by @WenjieDu in #156
- fix: the type hint for function
mcar()
in comments by @yhzhu99 in #157 - Update the greeting workflow, and update the docs by @WenjieDu in #159
- Updating workflows and docs by @WenjieDu in #162
- Fixing the bug caused by changed tsdb api, updating the docs by @WenjieDu in #166
- Updating docs and releasing v0.1.2 by @WenjieDu in #167
New Contributors
Full Changelog: v0.1.1...v0.1.2
v0.1.1 is here! And we bring you parallel training on multiple GPUs 🚀
In this new version, we
- enable PyPOTS to run on multiple CUDA devices to train models in parallel. NOW you can further speed up your model training in PyPOTS 🥳;
- add the imputation model M-RNN;
- add the optimizer Adadelta;
What's Changed
- Use relative imports replace absolute ones by @WenjieDu in #117
- Add optimizer Adadelta, and fix issue #116 by @WenjieDu in #118
- Docs auto param type hints by @WenjieDu in #119
- Use sphinx_autodoc_typehints to auto gene type hints for params, and improve docs by @WenjieDu in #120
- Enable parallel training on multi GPUs by @WenjieDu in #122
- skip multi-gpu test if not multi-gpu host by @MaciejSkrabski in #124
- Enable models to run on multiple CUDA devices by @WenjieDu in #125
- Add model MRNN by @WenjieDu in #126
- Add model M-RNN, and update the docs by @WenjieDu in #127
- Fix VaDER failed testing and MRNN failed training on multiple devices by @WenjieDu in #128
Full Changelog: v0.1.0...v0.1.1
v0.1.0
In this new version, we
- separated each model into a single package, for better standardization and easier management in the library;
- added model templates, for each task to assist PyPOTS contributors to quickly add new models;
- isolated optimizers from models,
1). to separate hyperparameters and avoid putting all of them in one place, which could result in a mess and be not readable;
2). to provide additional functionalities in the near future, such as learning rate scheduling, etc. - Documentations are formally released! 🚀
Visit PyPOTS website to see them;
What's Changed
- Try to automatically fix the exception
ValueError
raised by gmm.fit() during VaDER training by @WenjieDu in #62 - Fix the exception
ValueError
raised by gmm.fit() during VaDER training, update README, move logo figs, and removeversion.py
by @WenjieDu in #63 - Add
pypots-cli dev
by @WenjieDu in #66 - Add
pre-commit
and enable pre-commit hooks to check code before commtting by @WenjieDu in #68 - Add
pre-commit
config file and update issue templates by @WenjieDu in #69 - Add unit-test cases for
pypots-cli
by @WenjieDu in #72 - Fix bugs in the code-coverage report by @WenjieDu in #73
- Add devcontainer config by @WenjieDu in #76
- Tutorial release, new features, and bug fix by @WenjieDu in #75
- Fix dependency error in daily testing by @WenjieDu in #77
- Add PR template, and make the dependencies consistent in all config files by @WenjieDu in #78
- Update READE, and separate the number of trainable parameters with commas by @WenjieDu in #79
- Fix the footer issue on the docs home page, and update the docs by @WenjieDu in #81
- Update the docs with the pages installation and about_us added by @WenjieDu in #82
- Add the documentation pages of FAQ and examples by @WenjieDu in #83
- Enable different model saving strategies with argument
model_saving_strategy
by @WenjieDu in #84 - Make each model a single package by @WenjieDu in #86
- Fix failed docs building, update the docs, and allow tests for CLI to fail by @WenjieDu in #89
- Fix failed daily-testing workflow, rename files
dataset.py
intodata.py
, and update the docs by @WenjieDu in #91 - Add gtag to the docs site by @WenjieDu in #92
- Update docs by @WenjieDu in #93
- Update the documentation by @WenjieDu in #94
- Fix the corrupted testing badge caused by renaming the workflow by @WenjieDu in #95
- Move
tests
from dirpypots
to the root dir by @WenjieDu in #96 - Fix not shown heading
Attributes
in docs by @WenjieDu in #98 - Fix not shown heading
Attributes
in docs, and update the docs by @WenjieDu in #99 - Should use package
pypots
as the source for code coverage calculation, rather thantests
by @WenjieDu in #101 - Update docs, and fix the misdisplayed footer on the page
References
by @WenjieDu in #103 - Create package
pypots.optim
to separate optimizers from models by @WenjieDu in #106 - Add package
pypots.optim
to separate optimizers from models, and update docs by @WenjieDu in #107 - Update the docs for version 0.1 by @WenjieDu in #104
- Update the docs by @WenjieDu in #108
- Update the docs, and refactor the code by @WenjieDu in #109
- Add
.coveragerc
to omit files in templates by @WenjieDu in #111 - Add model templates, and release v0.1 by @WenjieDu in #110
- Fix the failed auto release workflow with missing dependencies by @WenjieDu in #113
Full Changelog: v0.0.11...v0.1