Shourya Bose
update readme
4ad6488
|
raw
history blame
4.19 kB
metadata
license: cc

About

This repository provides model weights to run load forecasting models trained on ComStock datasets. The companion dataset repository is this. The model definitions are present in the models directory. The corresponding trained model weights are present in the weights directory. The corresponding model keyword arguments (as a function of a provided lookback and lookahead) can be imported from the file model_kwargs.py.

Note that lookback is denoted by L and lookahead by T in the weights directory. We provide weights for the following (L,T) pairs: (512,4), (512,48), and (512,96), and for HOMogenous and HETerogenous datasets.

Data

When using the companion dataset, the following points must be noted (see the page for more information on configuring the data loaders):

  • All models accept normalized inputs and produce normalized outputs, i.e. set normalize = True when generating the datasets.
  • For Transformer, Autoformer, Informer, and TimesNet set transformer = True, while for LSTM, LSTNet, and PatchTST set transformer = False.

Packages

Executing the code only requires numpy and torch (PyTorch) packages. You can either have them in your Python base installation, or use a conda environment.

Example

In order to see how to use the model definitions and load the weights into them, see example.py.

Technical Details

In input layout of the models are as follows:

  • The forward() functions of LSTM, LSTNet, and PatchTST take in two arguments: forward(input, future_time_idx). They are laid out as follows:

    • input is a tensor of shape (B,L,num_features) where B is the batch size, L is the lookback duration, and num_features is 8 for our current application.
    • future_time_idx is a tensor of shape (B,T,2) where T is the lookahead and 2 is the number of time index features.
    • The time indices in input as well as fut_time_idx are both normalized.
    • Non-time features are normalized. The mean and standard deviation of the companion dataset can be inferred by executing example_dataset.py there and looking at Case 1 and Case 4.
    • The output shape is (B,1) denoting the pointwise forecast T steps into the future.
  • The forward() functions of Transformer, Autoformer, Informer, and TimesNet take in two arguments: forward(input, future_time_idx). They are laid out as follows:

    • input is a tensor of shape (B,L,num_features) where B is the batch size, L is the lookback duration, and num_features is 8 for our current application.
    • future_time_idx is a tensor of shape (B,T,2) where T is the lookahead and 2 is the number of time index features.
    • The time indices in input as well as fut_time_idx are un-normalized to allow for embedding.
    • Non-time features are normalized. The mean and standard deviation of the companion dataset can be inferred by executing example_dataset.py there and looking at Case 2 and Case 5.
    • The output shape is (B,1) denoting the pointwise forecast T steps into the future.
  • The forward() functions of TimesFM takes in one argument: forward(input). It is laid out as follows:

    • input is a tensor of shape (B,L) where B is the batch size and L is the lookback duration. Since it is univariate, there is only one feature.
    • The sole feature is normalized. The mean and standard deviation of the companion dataset can be inferred by executing example_dataset.py there and looking at Case 3 and Case 6.
    • The output shape is (B,T) denoting the rolling horizon forecast T steps into the future.

Credits

Some model definitions have been adapted from the code provided in the TSLib Library.