Releases: Ladbaby/PyOmniTS
v1.3.2
✨ New Features
- configs:
--n_patches_listis newly added. commit - models: A new model, APN, has been newly added to PyOmniTS. APN's original code repository is based on PyOmniTS. Hyperparameters for MIMIC-III, PhysioNet'12, Human Activity, and USHCN strictly follow the original paper. The rest datasets are not evaluated in the original model, thus we only provide a set of default hyperparameters. If you want to evaluate APN on these datasets, you may search for its optimal performance via
--sweep 1. commit
🪛 Refactoring
- exp: Parameters provided to models'
foward()are reordered, which only affects readability. commit
v1.3.1
✨ New Features
- configs:
--allow_tf32is newly added, which speeds up training on modern GPUs with minor performance losses. commit - docs: uv is added as an option for package installations. commit
- models: MOIRAI (commit) and PrimeNet (commit) have supported non-divisible patches.
- tests: PyOmniTS now includes basic tests to ensure core functionality. commit
🐛 Bug Fixes
- main: CUDA OOM handling is improved. commit
- models:
- scripts:
--pred_lenfor regular time series datasets is now aligned with existing works. commit - tools:
--test_params_flopcannot correctly save new metrics. commit
🪛 Refactoring
v1.3.0
Caution
BREAKING CHANGES
1. Experiment results folder structure
New argument --dataset_id is added to the folder structure:
- old structure (since v1.1.0):
storage/results/${DATASET_NAME}/${MODEL_NAME}/${MODEL_ID}/${SEQ_LEN}_${PRED_LEN}/%Y_%m%d_%H%M/iter0/eval_%Y_%m%d_%H%M - new structure (since v1.3.0):
storage/results/${DATASET_NAME}/${DATASET_ID}/${MODEL_NAME}/${MODEL_ID}/${SEQ_LEN}_${PRED_LEN}/%Y_%m%d_%H%M/iter0/eval_%Y_%m%d_%H%M
We make this change to support broader range of datasets that may contain subsets, like 128 UCR time series classification datasets. commit
New Features
- More detailed explanations for arguments in
utils/configs.py. commit download_filefunction provided inutils/tools.pynow default to 'y' after 30s of timeout, preventing training process from getting stucked. commit- New warning messages for possibly incorrect
--collate_fn. commit - New arguments
--dataset_subset_nameand--dataset_idadded for future-proofing. commit - IMTS datasets (MIMIC_III, MIMIC_IV, P12, USHCN, HumanActivity) now support non-divisible combinations of
--seq_lenand--patch_len(e.g.,--seq_len 36 --patch_len 10). commit - tPatchGNN now support the above non-divisible patches. commit
Bug Fixes
- Warning messages for --batch_size improved during experiments. commit
- Change default value of
--train_val_loader_drop_lastto0. Now all samples are leveraged. commit sample_IDfor dataset USHCN can be incorrect previously. commit- MOIRAI (commit), tPatchGNN (commit), and Raindrop (commit) now work properly without dropping the last batch (inconsistent batch_size cases).
Refactoring
- All launch scripts under
scripts/now rely onscripts/globals.sh:dataset_root_pathandn_variablesare provided byscripts/globals.sh, which helps us manage fixed information in one place and reduce duplicated contents across different scripts. commit - Contents in
utils/configs.pyandutils/ExpConfigs.pyare now ordered alphabetically in each category. commit
Full Changelog: v1.2.4...v1.3.0
v1.2.4
Bug Fix
Caution
Action needed for users using MIMIC-IV preprocessing scripts provided by PyOmniTS from v1.2.1 to v1.2.3
From PyOmniTS version v1.2.1 to v1.2.3, preprocessing scripts for MIMIC-IV dataset under data/dependencies/MIMIC_IV/preprocess can yield incorrect results, causing class MIMIC_IV_Bilos2021 in data/dependencies/tsdm/datasets/mimic_iv_bilos2021.py to raise "incorrect raw data shape" error. This is fundamentally caused by incorrect numpy and pandas versions given in the get started document section 3.2.2 option 1. Affected users can follow these steps to get the corrected preprocessed data for dataset MIMIC-IV:
- Remove
~/.tsdm/datasets/MIMIC_IV_Bilos2021/timeseries.parquet. - Follow the updated get started document section 3.2.2 option 1. Major changes are versions of Python, numpy, and pandas.
New Features
forward()functions of MSE, MAE, and CrossEntropyLoss underloss_fns/folder now return an additional key"loss_reduction_none". They are equivalent to settingreduction="none"for PyTorch built-in loss functions. commit- Variable names for MIMIC III & IV datasets. commit
Full Changelog: v1.2.3...v1.2.4
v1.2.3
New Features
- Automatic batch_size reduction when CUDA gets out of memory in training. commit
--save_cache_arrays 1option can save the output of model during testing, and automatically recover from cache files after testing is interuptted. This is useful for some models that runs extremely slow during testing, which are vulnerable to server power cutoff. commitdownload_file()function inutils/tools.pyprovides an easy and robust way to download weights/datasets from web. commit- HyperIMTS runs faster than before on fully observed time series. commit
- Remove the data extraction procedure for
.csv.gzfiles during MIMIC-III data preparation. commit - Add more detailed introduction for irregular time series datasets. commit
Bug fix
- Hyperparameter search target changed to loss_val_best. commit
- Get started documentation errors. commit
Refactoring
__getitem__functions for irregular time series datasets all returns dictionaries instead of custom data structures, following a similar api as PyOmniTS. It should be noted that tensors from__getitem__are still unpadded. commit
Full Changelog: v1.2.2...v1.2.3
v1.2.2
New Features
- Hyperparameter searching is enhanced. PyOmniTS can now automatically discover the used hyperparameters (attributes in ExpConfigs) per model. This can avoid searching through unused configs, realizing model-specific hyperparameter searching in an elegant way. To declare the search space for hyperparameters in
utils/ExpConfigs.py, write field metadata with "sweep" as the key and a list as the value:commitd_model: int = field(metadata={"sweep": [32, 64, 128, 256]})
Bug fix
- Missing comma in
exp/exp_main.pythat causes unexpected error. commit - state_dict device error when testing. commit
Full Changelog: v1.2.1...v1.2.2
v1.2.1
New Features
- Revised preprocessing scripts for MIMIC-III and MIMIC-IV have now been included in PyOmniTS! Corresponding get started documentation has also been updated. commit
current_epochis added as an additional input arguments to models during training. commit
Bug fix
- Sweep target has been corrected as validation loss. commit
- Last batch won't be skipped now during testing, if the batch size is smaller than expected. commit
- Data suffle within tsdm is disabled on dataset P12, MIMIC-III, and MIMIC-IV. PyOmniTS now handles the shuffle process instead. commit
- Various models have supported
d_modelandn_layersconfigs.
Refactor
- Redundant loops removed in shell scripts. commit
Full Changelog: v1.2.0...v1.2.1
v1.2.0
Bug fix
- model_id related error when --test_flops 1 / --test_train_time 1 / --test_gpu_memory 1
Caution
BREAKING CHANGES
1. Loss function initialization
Loss functions now accept configs during initialization, aligning with the behavior of models. Also, exp_stage and model are now provided to loss functions as arguments during training and validation. These changes are made for future proofing.
Full Changelog: v1.1.0...v1.2.0
v1.1.0
Caution
BREAKING CHANGES
1. Experiment results folder structure
--model_id is separated as an independent folder, and timestamp %Y_%m%d_%H%M now includes year.
- old structure:
storage/results/${DATASET_NAME}/${MODEL_NAME}/${MODEL_ID}_${SEQ_LEN}_${PRED_LEN}/%m%d_%H%M/iter0/eval_%m%d_%H%M - new structure:
storage/results/${DATASET_NAME}/${MODEL_NAME}/${MODEL_ID}/${SEQ_LEN}_${PRED_LEN}/%Y_%m%d_%H%M/iter0/eval_%Y_%m%d_%H%M
2. YAML configs folder structure
--model_id is added in the folder structure
- old structure:
configs/${MODEL_NAME}/${DATASET_NAME}.yaml - new structure:
configs/${MODEL_NAME}/${MODEL_ID}/${DATASET_NAME}.yaml
3. model_id in scripts
model_id_name has been replaced with model_id, and by default model_id is the same as model_name. For a family of models like MOIRAI, model_id is a good option to distinguish its different variants(small, large, etc.).
Full Changelog: v1.0.0...v1.1.0
Initial release
What's Changed
- docs: add Ladbaby as a contributor for code, and bug by @allcontributors in #5
New Contributors
- @allcontributors made their first contribution in #5
Full Changelog: https://github.com/Ladbaby/PyOmniTS/commits/v1.0.0