🎉 Getting Started | 💡 Overall Design
📦 Dataset | 🛠️ Scaler | 🧠 Model | 📉 Metrics | 🏃♂️ Runner | 📜 Config | 📜 Baselines
If you find this project helpful, please don't forget to give it a ⭐ Star to show your support. Thank you!
On one hand, BasicTS provides a unified and standardized pipeline, offering a fair and comprehensive platform for reproducing and comparing popular models.
On the other hand, BasicTS offers a user-friendly and easily extensible interface, enabling quick design and evaluation of new models. Users can simply define their model structure and easily perform basic operations.
You can find detailed tutorials in Getting Started. Additionally, we are collecting ToDo and HowTo items. If you need more features (e.g., additional datasets or benchmark models) or tutorials, feel free to open an issue or leave a comment here.
Important
If you find this repository useful for your work, please cite it as such:
@article{shao2023exploring,
title={Exploring Progress in Multivariate Time Series Forecasting: Comprehensive Benchmarking and Heterogeneity Analysis},
author={Shao, Zezhi and Wang, Fei and Xu, Yongjun and Wei, Wei and Yu, Chengqing and Zhang, Zhao and Yao, Di and Jin, Guangyin and Cao, Xin and Cong, Gao and others},
journal={arXiv preprint arXiv:2310.06119},
year={2023}
}
Users can compare the performance of different models on arbitrary datasets fairly and exhaustively based on a unified and comprehensive pipeline.
Minimum Code
Users only need to implement key codes such as model architecture and data pre/post-processing to build their own deep learning projects.Everything Based on Config
Users can control all the details of the pipeline through a config file, such as the hyperparameter of dataloaders, optimization, and other tricks (*e.g.*, curriculum learning).Support All Devices
BasicTS supports CPU, GPU and GPU distributed training (both single node multiple GPUs and multiple nodes) thanks to using EasyTorch as the backend. Users can use it by setting parameters without modifying any code.Save Training Log
Support `logging` log system and `Tensorboard`, and encapsulate it as a unified interface, users can save customized training logs by calling simple interfaces.BasicTS support a variety of datasets, including spatial-temporal forecasting, long time-series forecasting, and large-scale datasets, e.g.,
- METR-LA, PEMS-BAY, PEMS03, PEMS04, PEMS07, PEMS08
- ETTh1, ETTh2, ETTm1, ETTm2, Electricity, Exchange Rate, Weather, Traffic, Illness, Beijing Air Quality
- SD, GLA, GBA, CA
- ...
BasicTS implements a wealth of models, including classic models, spatial-temporal forecasting models, and long time-series forecasting model, e.g.,
- HI, DeepAR, LightGBM, ...
- DCRNN, Graph WaveNet, MTGNN, STID, D2STGNN, STEP, DGCRN, DGCRN, STNorm, AGCRN, GTS, StemGNN, MegaCRN, STGCN, STWave, STAEformer, GMSDR, ...
- Informer, Autoformer, FEDformer, Pyraformer, DLinear, NLinear, Triformer, Crossformer, ...
For detailed instructions, please refer to the Getting Started tutorial.
See the paper Exploring Progress in Multivariate Time Series Forecasting: Comprehensive Benchmarking and Heterogeneity Analysis.
Thanks goes to these wonderful people (emoji key):
S22 🚧 💻 🐛 |
LMissher 💻 🐛 |
CNStark 🚇 |
Azusa 🐛 |
Yannick Wölker 🐛 |
hlhang9527 🐛 |
Chengqing Yu 💻 |
Reborn14 📖 💻 |
blisky-li 💻 |
TensorPulse 🐛 |
This project follows the all-contributors specification. Contributions of any kind welcome!
BasicTS is developed based on EasyTorch, an easy-to-use and powerful open-source neural network training framework.