Happy New Year, dear friends! 🥳
New features and updated APIs in PyPOTS are brought to you here! In v0.3, we
1. added TimesNet as an imputation model;
2. simplified the structure of `val_set`. In previous versions, you had to give `indicating_mask` in the dictionary `val_set` that tells PyPOTS to use which values to validate the model. Now you only need to give `X_ori` (i.e. `X_intact` before) and `X`, both leaving their missing data as NaNs. PyPOTS will handle everything left to evaluate the model for you;
3. enabled PyPOTS to tune hyperparameters for external models (implemented with the PyPOTS framework but haven't been integrated into PyPOTS);
4. updated the package `pypots.data.saving`. Separated the functions for pickle saving and h5py saving, and added `load_dict_from_h5` that can inverse (deserialize) the process of `save_dict_into_h5`;
5. fixed some bugs (255, 263, 266, 280, 282, 286, 289);
What's Changed
* Code refactor by WenjieDu in https://github.com/WenjieDu/PyPOTS/pull/251
* Adding TimesNet as an imputation model by WenjieDu in https://github.com/WenjieDu/PyPOTS/pull/252
* Adding TimesNet, refactoring code, and updating docs by WenjieDu in https://github.com/WenjieDu/PyPOTS/pull/253
* Fixing CSDI gtmask bug by WenjieDu in https://github.com/WenjieDu/PyPOTS/pull/255
* Fixing CSDI `gt_mask` issue, and setting a fixed random seed for testing cases by WenjieDu in https://github.com/WenjieDu/PyPOTS/pull/256
* Making CSDI return all n_sampling_times imputation samples by WenjieDu in https://github.com/WenjieDu/PyPOTS/pull/258
* Adding get_random_seed(), and adding func calc_quantile_crps() by WenjieDu in https://github.com/WenjieDu/PyPOTS/pull/260
* Making CSDI val process same as the original by WenjieDu in https://github.com/WenjieDu/PyPOTS/pull/262
* Fix missing argument attn_dropout in imputation Transformer by WenjieDu in https://github.com/WenjieDu/PyPOTS/pull/263
* Adding visualization functions by AugustJW in https://github.com/WenjieDu/PyPOTS/pull/267
* Add cluster plotting functions in pypots.utils.visualization by vemuribv in https://github.com/WenjieDu/PyPOTS/pull/182
* Fixing unstable nonstationary norm, adding `utils.visual`, and doing some code refactoring by WenjieDu in https://github.com/WenjieDu/PyPOTS/pull/266
* Updating package `pypots.data.saving` by WenjieDu in https://github.com/WenjieDu/PyPOTS/pull/268
* Enabling to tune hyperparameters for outside models implemented with PyPOTS framework by WenjieDu in https://github.com/WenjieDu/PyPOTS/pull/269
* Simplifying the structure of val_set, and using a consistent strategy when lazy-loading val_set by WenjieDu in https://github.com/WenjieDu/PyPOTS/pull/272
* Renaming X_intact into X_ori, and adding matplotlib as a dependency by WenjieDu in https://github.com/WenjieDu/PyPOTS/pull/274
* Simplifying val_set, renaming X_intact, and adding unit tests for the visual package by WenjieDu in https://github.com/WenjieDu/PyPOTS/pull/275
* Update GP-VAE by WenjieDu in https://github.com/WenjieDu/PyPOTS/pull/277
* Updating GP-VAE, adding load_dict_from_h5, etc. by WenjieDu in https://github.com/WenjieDu/PyPOTS/pull/278
* Adding _check_inputs() for error calculation functions by WenjieDu in https://github.com/WenjieDu/PyPOTS/pull/279
* Fixing CSDI, adding placeholder for epoch num in logging by WenjieDu in https://github.com/WenjieDu/PyPOTS/pull/280
* Fixing the infinite loop in LOCF by WenjieDu in https://github.com/WenjieDu/PyPOTS/pull/282
* Update docs by WenjieDu in https://github.com/WenjieDu/PyPOTS/pull/285
* Updating docs, fixing CSDI&LOCF&MRNN, and adding the strategy to save all models by WenjieDu in https://github.com/WenjieDu/PyPOTS/pull/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 https://github.com/WenjieDu/PyPOTS/pull/287
* Fixing MRNN by WenjieDu in https://github.com/WenjieDu/PyPOTS/pull/286
* Fix issues in MRNN and update the hyperparameter tuning functionality by WenjieDu in https://github.com/WenjieDu/PyPOTS/pull/288
* Fixing the type error of random_seed in pypots.cli.tuning and updating the docs by WenjieDu in https://github.com/WenjieDu/PyPOTS/pull/289
* Updating load_dict_from_h5() by WenjieDu in https://github.com/WenjieDu/PyPOTS/pull/290
**Full Changelog**: https://github.com/WenjieDu/PyPOTS/compare/v0.2.1...v0.3