tft-torch is a Python
library that
implements "Temporal Fusion Transformers for Interpretable Multi-horizon Time Series Forecasting"
using pytorch framework. The library provides a complete implementation of a time-series multi-horizon forecasting model
with state-of-the-art performance on several benchmark datasets.
This library works for Python 3.7 and higher and PyTorch 1.6.0 and higher.
This library is distributed on PyPi and can be installed using pip
.
$ pip install tft-torch
The command above will automatically install all the required dependencies. Please visit the installation page for more details.
Check out the tutorials for a demonstration how to use the library.
For more information, refer to our blogpost and complete documentation.
This repository suggests an implementation of a model based on the work presented in the following paper:
@misc{lim2020temporal,
title={Temporal Fusion Transformers for Interpretable Multi-horizon Time Series Forecasting},
author={Bryan Lim and Sercan O. Arik and Nicolas Loeff and Tomas Pfister},
year={2020},
eprint={1912.09363},
archivePrefix={arXiv},
primaryClass={stat.ML}
}
Some parts of the implementation rely on mattsherar's TFT implementation, available as part of the Temporal_Fusion_Transform repository.
The source code of the project is available on GitHub.
$ git clone https://github.com/PlaytikaOSS/tft-torch.git
You can install the library and the dependencies with one of the following commands:
$ pip install . # install library + dependencies
$ pip install ".[develop]" # install library + dependencies + developer-dependencies
$ pip install -r requirements.txt # install dependencies
$ pip install -r requirements-dev.txt # install developer-dependencies
For creating the "pip-installable" *.whl
file, run the following command (at the root of the repository):
$ python -m build
For creating the HTML documentation of the project, run the following commands:
$ cd docs
$ make clean
$ make html
Tests can be executed with pytest
running the following commands:
$ cd tests
$ pytest # run all tests
$ pytest test_testmodule.py # run all tests within a module
$ pytest test_testmodule.py -k test_testname # run only 1 test