Timeseries Learning Library for PyTorch.
Project description
pytorch_timeseries
An all in one deep learning library that boost your timeseries research. Check the documentation for more detail.
Compared to previous libraries, pytorch_timeseries is
- dataset automatically downloaded
- easy to use and extend
- clear documentation
- highly customizable
- install and run!
- ..........
1. installation
pip install torch-timeseries
⚠️⚠️⚠️ Warning: We only support python version >= 3.8+
2. Running Implemented Experiments
Forecast
# running DLinear Forecast on dataset ETTh1 with seed = 3
pytexp --model DLinear --task Forecast --dataset_type ETTh1 run 3
# running DLinear Forecast on dataset ETTh1 with seeds=[1,2,3]
pytexp --model DLinear --task Forecast --dataset_type ETTh1 runs '[1,2,3]'
Imputation
# running DLinear Imputation on dataset ETTh1 with seed = 3
pytexp --model DLinear --task Imputation --dataset_type ETTh1 run 3
# running DLinear Imputation on dataset ETTh1 with seed = [1,2,3]
pytexp --model DLinear --task Imputation --dataset_type ETTh1 run '[1,2,3]'
UEAClassification
# running DLinear UEAClassification on dataset EthanolConcentration with seed = 3
pytexp --model DLinear --task UEAClassification --dataset_type EthanolConcentration run 3
# running DLinear UEAClassification on dataset EthanolConcentration with seed = [1,2,3]
pytexp --model DLinear --task UEAClassification --dataset_type EthanolConcentration run '[1,2,3]'
AnomalyDetection
# running DLinear AnomalyDetection on dataset MSL with seed = [1,2,3]
pytexp --model DLinear --task AnomalyDetection --dataset_type MSL run 3
# running DLinear AnomalyDetection on dataset MSL with seed = [1,2,3]
pytexp --model DLinear --task AnomalyDetection --dataset_type MSL run 3
Development Milestones
Implemented Datasets
Full list of datasets can be found at Documentation.
Datasets | Forecasting | Imputation | Anomaly | Classification |
---|---|---|---|---|
ETTh1 | ✅ | ✅ | ||
ETTh2 | ✅ | ✅ | ||
ETTm1 | ✅ | ✅ | ||
ETTm2 | ✅ | ✅ | ||
......And More | ✅ | ✅ | ✅ | ✅ |
Implemented Tasks
- Forecast
- Classfication (for UEA datasets)
- Anomaly Detection
- Imputation
- You can fill this check box! (contribute to develop your own task!)
Implemented Models
Models | Forecasting | Imputation | Anomaly | Classification |
---|---|---|---|---|
DLinear (2022) | ✅ | ✅ | ✅ | ✅ |
Customizing Your Own Pipeline
we provide examples of :
Detail of customize forecasting pipeline is as follows:
1 Forecasting
1.1 download dataset
The dataset will be downloaded automatically!!!!
from torch_timeseries.dataset import ETTh1
from torch_timeseries.dataloader import StandardScaler, SlidingWindow, SlidingWindowTS
from torch_timeseries.model import DLinear
from torch.nn import MSELoss, L1Loss
from torch.optim import Adam
dataset = ETTh1('./data')
1.2 setup scaler/dataloader
Once you setup a dataloader and pass a scaler into this dataloader, the scaler will be fitted on the training set.
scaler = StandardScaler()
dataloader = SlidingWindowTS(dataset,
window=96,
horizon=1,
steps=336,
batch_size=32,
train_ratio=0.7,
val_ratio=0.2,
scaler=scaler,
)
After this, you can access the train/val/test loader by dataloader.train_loader/val_loader/test_loader
1.3 training
model = DLinear(dataloader.window, dataloader.steps, dataset.num_features, individual= True)
optimizer = Adam(model.parameters())
loss_function = MSELoss()
# train
model.train()
for scaled_x, scaled_y, x, y, x_date_enc, y_date_enc in dataloader.train_loader:
optimizer.zero_grad()
scaled_x = scaled_x.float()
scaled_y = scaled_y.float()
scaled_pred_y = model(scaled_x)
loss = loss_function(scaled_pred_y, scaled_y)
loss.backward()
optimizer.step()
print(loss)
1.4 val/test
# val
model.eval()
for scaled_x, scaled_y, x, y, x_date_enc, y_date_enc in dataloader.val_loader:
....your validation code here...
# test
model.eval()
for scaled_x, scaled_y, x, y, x_date_enc, y_date_enc in dataloader.test_loader:
....your test code here...
Dev Install
install requirements
Note:This library assumes that you've installed Pytorch according to it's official website, the basic dependencies of torch > > related libraries may not be listed in the requirements files: https://pytorch.org/get-started/locally/
The recommended python version is 3.8.1+.
-
fork this project
-
clone this project (latest version)
git clone https://github.com/wayne155/pytorch_timeseries
- install requirements.
pip install -r ./requirements.txt
-
change some code and push to the forked repo
-
create a pull request to this repo
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file torch-timeseries-0.1.1.tar.gz
.
File metadata
- Download URL: torch-timeseries-0.1.1.tar.gz
- Upload date:
- Size: 44.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.8.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c7404100beb73d6d4c7ab0817b3c657df913afc36ee65b2d20e12d3f83fb4780 |
|
MD5 | 941512c48f98996f33f0487cc999bb09 |
|
BLAKE2b-256 | c95892755c07523b3c472766896ea053e856c0838ccdd713f1e111f739949a28 |