Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
zezhishao committed Jan 10, 2024
1 parent 39e1597 commit 5c59ad7
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 19 deletions.
36 changes: 17 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
<div align="center">
<img src="assets/basicts_logo.png" height=200>
<!-- <h1><b> BasicTS </b></h1> -->
<!-- <h2><b> BasicTS </b></h2> -->
<img src="assets/basicts+.png" height=200>
<h3><b> A Standard and Fair Time Series Forecasting Benchmark and Toolkit. </b></h3>
</div>

Expand All @@ -16,19 +14,19 @@

</div>

BasicTS (**Basic** **T**ime **S**eries) is a PyTorch-based benchmark and toolbox for **time series forecasting** (TSF).
$\text{BasicTS}^{+}$ (**Basic** **T**ime **S**eries) is a PyTorch-based benchmark and toolbox for **time series forecasting** (TSF). After an upgrade, $\text{BasicTS}^{+}$ currently supports both spatial-temporal forecasting and long time-series forecasting, and provides a wealth of reproducible baselines and datasets.

On the one hand, BasicTS utilizes a ***unified and standard pipeline*** to give a ***fair and exhaustive*** reproduction and comparison of popular deep learning-based models.
On the one hand, $\text{BasicTS}^{+}$ utilizes a ***unified and standard pipeline*** to give a ***fair and exhaustive*** reproduction and comparison of popular deep learning-based models.

On the other hand, BasicTS provides users with ***easy-to-use and extensible interfaces*** to facilitate the quick design and evaluation of new models. At a minimum, users only need to define the model architecture.
On the other hand, $\text{BasicTS}^{+}$ provides users with ***easy-to-use and extensible interfaces*** to facilitate the quick design and evaluation of new models. At a minimum, users only need to define the model architecture.

We are collecting **TODOs** and **HOWTOs**, if you need more features (*e.g.* more datasets or baselines) or have any questions, please feel free to create an issue or leave a comment [here](https://github.com/zezhishao/BasicTS/issues/95).

If you find this repository useful for your work, please consider citing it as [such](./citation.bib).

## ✨ Highlighted Features

BasicTS is developed based on [EasyTorch](https://github.com/cnstark/easytorch), an easy-to-use and powerful open-source neural network training framework.
$\text{BasicTS}^{+}$ is developed based on [EasyTorch](https://github.com/cnstark/easytorch), an easy-to-use and powerful open-source neural network training framework.

### Fair Performance Review

Expand All @@ -49,7 +47,7 @@ Users can control all the details of the pipeline through a config file, such as

<details>
<summary><b>Support All Devices</b></summary>
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.
$\text{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.
</details>

<details>
Expand All @@ -61,7 +59,7 @@ Support `logging` log system and `Tensorboard`, and encapsulate it as a unified

### Datasets

BasicTS support a variety of datasets, including spatial-temporal forecasting, long time-series forecasting, and large-scale datasets, e.g.,
$\text{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
Expand All @@ -70,7 +68,7 @@ BasicTS support a variety of datasets, including spatial-temporal forecasting, l

### Baselines

BasicTS provides a wealth of built-in models, including both spatial-temporal forecasting models and long time-series forecasting models, e.g.,
$\text{BasicTS}^{+}$ implements a wealth of models, including both spatial-temporal forecasting models and long time-series forecasting models, e.g.,
- 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, ...

Expand All @@ -82,7 +80,7 @@ BasicTS provides a wealth of built-in models, including both spatial-temporal fo

### OS

We recommend using BasicTS on Linux systems (*e.g.* Ubuntu and CentOS).
We recommend using $\text{BasicTS}^{+}$ on Linux systems (*e.g.* Ubuntu and CentOS).
Other systems (*e.g.*, Windows and macOS) have not been tested.

### Python
Expand All @@ -94,7 +92,7 @@ Python >= 3.6 (recommended >= 3.9).
### Other Dependencies
</details>

BasicTS is built based on PyTorch and [EasyTorch](https://github.com/cnstark/easytorch).
$\text{BasicTS}^{+}$ is built based on PyTorch and [EasyTorch](https://github.com/cnstark/easytorch).
You can install PyTorch following the instruction in [PyTorch](https://pytorch.org/get-started/locally/). For example:

```bash
Expand All @@ -109,7 +107,7 @@ pip install -r requirements.txt

### Warning

BasicTS is built on PyTorch 1.9.1 or 1.10.0, while other versions have not been tested.
$\text{BasicTS}^{+}$ is built on PyTorch 1.9.1 or 1.10.0, while other versions have not been tested.


## 🎯 Getting Started of Developing with BasicTS
Expand Down Expand Up @@ -141,27 +139,27 @@ BasicTS is built on PyTorch 1.9.1 or 1.10.0, while other versions have not been

- **Define Your Model Architecture**

The `forward` function needs to follow the conventions of BasicTS. You can find an example of the Multi-Layer Perceptron (`MLP`) model in [baselines/MLP/mlp_arch.py](baselines/MLP/mlp_arch.py)
The `forward` function needs to follow the conventions of $\text{BasicTS}^{+}$. You can find an example of the Multi-Layer Perceptron (`MLP`) model in [baselines/MLP/mlp_arch.py](baselines/MLP/mlp_arch.py)

- **Define Your Runner for Your Model** (Optional)

BasicTS provides a unified and standard pipeline in `basicts.runner.BaseTimeSeriesForecastingRunner`.
$\text{BasicTS}^{+}$ provides a unified and standard pipeline in `basicts.runner.BaseTimeSeriesForecastingRunner`.
Nevertheless, you still need to define the specific forward process (the `forward` function in the **runner**).
Fortunately, BasicTS also provides such an implementation in `basicts.runner.SimpleTimeSeriesForecastingRunner`, which can cover most of the situations.
Fortunately, $\text{BasicTS}^{+}$ also provides such an implementation in `basicts.runner.SimpleTimeSeriesForecastingRunner`, which can cover most of the situations.
The runner for the `MLP` model can also use this built-in runner.
You can also find more runners in `basicts.runners.runner_zoo` to learn more about the runner design.

- **Configure your Configuration File**

You can configure all the details of the pipeline and hyperparameters in a configuration file, *i.e.*, **everything is based on config**.
The configuration file is a `.py` file, in which you can import your model and runner and set all the options. BasicTS uses `EasyDict` to serve as a parameter container, which is extensible and flexible to use.
The configuration file is a `.py` file, in which you can import your model and runner and set all the options. $\text{BasicTS}^{+}$ uses `EasyDict` to serve as a parameter container, which is extensible and flexible to use.
An example of the configuration file for the `MLP` model on the `METR-LA` dataset can be found in [baselines/MLP/MLP_METR-LA.py](baselines/MLP/MLP_METR-LA.py)

### Run It!

- **Reproducing Built-in Models**

BasicTS provides a wealth of built-in models. You can reproduce these models by running the following command:
$\text{BasicTS}^{+}$ provides a wealth of built-in models. You can reproduce these models by running the following command:

```bash
python experiments/train.py -c baselines/${MODEL_NAME}/${DATASET_NAME}.py --gpus '0'
Expand Down Expand Up @@ -211,4 +209,4 @@ Comprehensive Benchmarking and Heterogeneity Analysis](https://arxiv.org/pdf/231

## 🔗 Acknowledgement

BasicTS is developed based on [EasyTorch](https://github.com/cnstark/easytorch), an easy-to-use and powerful open-source neural network training framework.
$\text{BasicTS}^{+}$ is developed based on [EasyTorch](https://github.com/cnstark/easytorch), an easy-to-use and powerful open-source neural network training framework.
Binary file added assets/basicts+.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/basicts+2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 5c59ad7

Please sign in to comment.