This is an official implementation of paper: ModernTCN: A Modern Pure Convolution Structure for General Time Series Analysis.
Donghao Luo and Xue Wang. ModernTCN: A Modern Pure Convolution Structure for General Time Series Analysis. In International Conference on Learning Representations, 2024. [Our paper in OpenReview].
We study the open question of how to better use convolution in time series analysis and we take a seldom-explored way in time series community to successfully bring convolution back to time series analysis.
As a pure convolution structure, our ModernTCN achieves the consistent state-of-the-art performance on five mainstream time series analysis tasks (long-term and short-term forecasting, imputation, classification and anomaly detection) while maintaining the efficiency advantage of convolution-based models, therefore providing a better balance of efficiency and performance.
ModernTCN block design: ModernTCN block can achieve larger ERF and better capture the cross-variable dependency, therefore being more suitable for time series analysis.
Figure 1. ModernTCN block design. | Figure 2. Visualization of ERF. |
Main Results: Our ModernTCN achieves the consistent state-of-the-art performance on five mainstream time series analysis tasks with better efficiency.
- Install Python 3.7 and necessary dependencies.
pip install -r requirements.txt
-
Download data. You can obtain all datasets from [Times-series-library].
-
Long-term forecasting tasks.
We provide the long-term forecasting experiment coding in ./ModernTCN-Long-term-forecasting
and experiment scripts can be found under the folder ./scripts
. To run the code on ETTh2, just run the following command:
cd ./ModernTCN-Long-term-forecasting
sh ./scripts/ETTh2.sh
- Short-term forecasting tasks.
We provide the short-term forecasting experiment coding in ./ModernTCN-short-term
and experiment scripts can be found under the folder ./scripts
. Please run the following command:
cd ./ModernTCN-short-term
sh ./scripts/M4.sh
- Imputation tasks.
We provide the imputation experiment coding in ./ModernTCN-imputation
and experiment scripts can be found under the folder ./scripts
. To run the code on ETTh2, just run the following command:
cd ./ModernTCN-imputation
sh ./scripts/ETTh2.sh
- Classification tasks.
We provide the classification experiment coding in ./ModernTCN-classification
and experiment scripts can be found under the folder ./scripts
. Please run the following command:
cd ./ModernTCN-classification
sh ./scripts/classification.sh
- Anomaly detection tasks.
We provide the anomaly detection experiment coding in ./ModernTCN-detection
and experiment scripts can be found under the folder ./scripts
. To run the code on SWaT, just run the following command:
cd ./ModernTCN-detection
sh ./scripts/SWaT.sh
If you have any question or want to use the code, please contact ldh21@mails.tsinghua.edu.cn.
If you find this repo useful, please cite our paper.
@inproceedings{
donghao2024moderntcn,
title={Modern{TCN}: A Modern Pure Convolution Structure for General Time Series Analysis},
author={Luo donghao and wang xue},
booktitle={The Twelfth International Conference on Learning Representations},
year={2024},
url={https://openreview.net/forum?id=vpJMJerXHU}
}
We appreciate the following github repos a lot for their valuable code base or datasets:
https://github.com/ts-kim/RevIN
https://github.com/PatchTST/PatchTST
https://github.com/thuml/Time-Series-Library