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.8.tar.gz (15.6 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.8-py3-none-any.whl (79.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: tsfast-0.1.8.tar.gz
  • Upload date:
  • Size: 15.6 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.8.tar.gz
Algorithm Hash digest
SHA256 9d369abb035ef315dec9f46aaaf88e9e343d77f9da3aa31b416b84f332aca96f
MD5 1fa32c0cfa6bfb78a12ff262a424d7e8
BLAKE2b-256 bf937cb2c6cf6d758da6c890974375d981ab36d05c10dbd20163040c1835c670

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tsfast-0.1.8-py3-none-any.whl
  • Upload date:
  • Size: 79.4 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.8-py3-none-any.whl
Algorithm Hash digest
SHA256 cecbc53bc301034f1d069026d8eb95d70a0848ffdc9cce9ea355b6faad17ae1b
MD5 6f382d78496a4062d95f781c0d6c986c
BLAKE2b-256 48ad13f8bf1a6986cc5aae0bdab8fd229afd0bd05bd0bfd63f87f9c872ec70c9

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