Skip to main content

A description of your project

Project description

tsfast logo

TSFast

PyPI version License: Apache 2.0 Docs Status Python Versions

Description

tsfast is an open-source deep learning library for time series analysis and system identification tasks. Built on PyTorch & fastai, it offers efficient deep learning models and utilities.

tsfast is an open-source deep learning package that focuses on system identification and time series analysis tasks. Built on the foundations of PyTorch and fastai, it provides efficient implementations of various deep learning models and utilities.

Key Features

  • Specialized Data Handling for Time Series:
    • Employs SequenceBlock (built on fastai.TransformBlock) for robust sequence data processing pipelines.
    • Includes a range of transforms tailored for sequences, such as SeqSlice, SeqNoiseInjection, and Normalize adapted for time series tensors.
    • Features advanced data loading with TbpttDl (for Truncated Backpropagation Through Time), and factories for WeightedDL and BatchLimitDL.
  • Predefined Datasets & Helpers: Offers easy-to-use benchmark datasets (e.g., create_dls_silverbox from identibench) for rapid prototyping and experimentation.
  • Tailored Time Series Models: Provides implementations of Recurrent Neural Networks (RNNs, including DenseNet_RNN, ResidualBlock_RNN), Convolutional Neural Networks (TCNs, CausalConv1d), and combined architectures (CRNN, SeperateCRNN) specifically designed for sequence modeling. Includes building blocks like SeqLinear and stateful batch normalization.
  • Integrated fastai Learner: Features RNNLearner, TCNLearner, CRNNLearner, etc., extending fastai’s Learner for streamlined model training, equipped with custom time-series losses (e.g., fun_rmse, nrmse) and callbacks (e.g., TbpttResetCB, ARInitCB, SkipFirstNCallback).
  • System Identification & Prediction:
    • Supports simulation (prediction based on inputs) and N-step ahead forecasting.
    • Includes specialized models and callbacks for system identification tasks like FRANSYS (FranSys, FranSysCallback) and AR models (AR_Model, ARProg).
    • Provides an InferenceWrapper for easier model deployment and prediction.
  • Hyperparameter Optimization: Integrates with Ray Tune via HPOptimizer for efficient hyperparameter searching.

Installation

You can install the latest stable version from pip using:

pip install tsfast

For development installation:

git clone https://github.com/daniel-om-weber/tsfast
cd tsfast
pip install -e '.[dev]'

Quick Start

Here is a quick example using a benchmark dataloader. It demonstrates loading and visualizing data, training a RNN, and visualizing the results.

from tsfast.basics import *
dls = create_dls_silverbox()
dls.show_batch(max_n=1)

lrn = RNNLearner(dls)
lrn.fit_flat_cos(1)
<style> /* Turns off some styling */ progress { /* gets rid of default border in Firefox and Opera. */ border: none; /* Needs to be in here for Safari polyfill so background images work as expected. */ background-size: auto; } progress:not([value]), progress:not([value])::-webkit-progress-bar { background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px); } .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar { background: #F44336; } </style>
epoch train_loss valid_loss fun_rmse time
0 0.006716 0.006925 0.015471 01:55
lrn.show_results(max_n=1)
<style> /* Turns off some styling */ progress { /* gets rid of default border in Firefox and Opera. */ border: none; /* Needs to be in here for Safari polyfill so background images work as expected. */ background-size: auto; } progress:not([value]), progress:not([value])::-webkit-progress-bar { background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px); } .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar { background: #F44336; } </style>

Contributing

Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.

Citation

If you use tsfast in your research, please cite:

@Misc{tsfast,
author = {Daniel O.M. Weber},
title = {tsfast - A deep learning library for time series analysis and system identification},
howpublished = {Github},
year = {2024},
url = {https://github.com/daniel-om-weber/tsfast}
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tsfast-0.1.7.tar.gz (15.5 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tsfast-0.1.7-py3-none-any.whl (73.5 kB view details)

Uploaded Python 3

File details

Details for the file tsfast-0.1.7.tar.gz.

File metadata

  • Download URL: tsfast-0.1.7.tar.gz
  • Upload date:
  • Size: 15.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.10

File hashes

Hashes for tsfast-0.1.7.tar.gz
Algorithm Hash digest
SHA256 5f23096f5e3d02ed632676d50afeef7695cd19f44414cd97b104591009fd2b0b
MD5 d4764881d0c8b8d0fa6d542d8bdf51e7
BLAKE2b-256 e124e4d1f990e612608b2e79c85babead7b3591655a24506921ed4255d251ffd

See more details on using hashes here.

File details

Details for the file tsfast-0.1.7-py3-none-any.whl.

File metadata

  • Download URL: tsfast-0.1.7-py3-none-any.whl
  • Upload date:
  • Size: 73.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.10

File hashes

Hashes for tsfast-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 6fc888174c47c2eb0c8ec94690ef75cceff4c46dcb31977b21f92365e0ea8ca1
MD5 16d03da58a80b358049a5fc04d404fd8
BLAKE2b-256 19736192dc375ef923423ceb8489217fc590f828328bbc004525cbae71d4aed9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page