Shourya Bose
update readme
0aa0c9c
|
raw
history blame
4.6 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.

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 for Running the Models

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.
    • The custom torch.utils.data.Dataset class for the train, val, and test sets can be generated by executing the get_data_and_generate_train_val_test_sets function in the custom_dataset.py file in the companion dataset.
    • 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.
    • The custom torch.utils.data.Dataset class for the train, val, and test sets can be generated by executing the get_data_and_generate_train_val_test_sets function in the custom_dataset.py file in the companion dataset.
    • 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 custom torch.utils.data.Dataset class for the train, val, and test sets can be generated by executing the get_data_and_generate_train_val_test_sets function in the custom_dataset_univariate.py file in the companion dataset.
    • 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.