From 2e724badfba8ff0c3dafefa4cf03e4b38c6e8f47 Mon Sep 17 00:00:00 2001 From: CoprDistGit Date: Mon, 15 May 2023 05:04:51 +0000 Subject: automatic import of python-tsai --- python-tsai.spec | 1046 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1046 insertions(+) create mode 100644 python-tsai.spec (limited to 'python-tsai.spec') diff --git a/python-tsai.spec b/python-tsai.spec new file mode 100644 index 0000000..8f33f8f --- /dev/null +++ b/python-tsai.spec @@ -0,0 +1,1046 @@ +%global _empty_manifest_terminate_build 0 +Name: python-tsai +Version: 0.3.6 +Release: 1 +Summary: Practical Deep Learning for Time Series / Sequential Data library based on fastai & Pytorch +License: Apache Software License 2.0 +URL: https://github.com/timeseriesAI/tsai/ +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/6f/a1/75e13c89265c32d51db10bdf2d50b2a1ff8bf07f5fd62ec392ae57edd8c8/tsai-0.3.6.tar.gz +BuildArch: noarch + +Requires: python3-fastai +Requires: python3-pyts +Requires: python3-imbalanced-learn +Requires: python3-psutil +Requires: python3-torch +Requires: python3-nbdev +Requires: python3-ipykernel +Requires: python3-sktime +Requires: python3-tsfresh +Requires: python3-PyWavelets +Requires: python3-nbformat + +%description + +
+ +
+

+![CI](https://github.com/timeseriesai/tsai/workflows/CI/badge.svg) +[![PyPI](https://img.shields.io/pypi/v/tsai?color=blue&label=pypi%20version.png)](https://pypi.org/project/tsai/#description) +[![Conda (channel +only)](https://img.shields.io/conda/vn/timeseriesai/tsai?color=brightgreen&label=conda%20version.png)](https://anaconda.org/timeseriesai/tsai) +[![DOI](https://zenodo.org/badge/211822289.svg)](https://zenodo.org/badge/latestdoi/211822289) +![PRs](https://img.shields.io/badge/PRs-welcome-brightgreen.svg) +## Description +> State-of-the-art Deep Learning library for Time Series and Sequences. +`tsai` is an open-source deep learning package built on top of Pytorch & +fastai focused on state-of-the-art techniques for time series tasks like +classification, regression, forecasting, imputation… +`tsai` is currently under active development by timeseriesAI. +## What’s new: +During the last few releases, here are some of the most significant +additions to `tsai`: +- **New models**: PatchTST (Accepted by ICLR 2023), RNN with Attention + (RNNAttention, LSTMAttention, GRUAttention), TabFusionTransformer, … +- **New datasets**: we have increased the number of datasets you can + download using `tsai`: + - 128 univariate classification datasets + - 30 multivariate classification datasets + - 15 regression datasets + - 62 forecasting datasets + - 9 long term forecasting datasets +- **New tutorials**: + [PatchTST](https://github.com/timeseriesAI/tsai/blob/main/tutorial_nbs/15_PatchTST_a_new_transformer_for_LTSF.ipynb). + Based on some of your requests, we are planning to release additional + tutorials on data preparation and forecasting. +- **New functionality**: sklearn-type pipeline transforms, walk-foward + cross validation, reduced RAM requirements, and a lot of new + functionality to perform more accurate time series forecasts. +- Pytorch 2.0 support. +## Installation +### Pip install +You can install the **latest stable** version from pip using: +``` python +pip install tsai +``` +If you plan to develop tsai yourself, or want to be on the cutting edge, +you can use an editable install. First install PyTorch, and then: +``` python +git clone https://github.com/timeseriesAI/tsai +pip install -e "tsai[dev]" +``` +Note: starting with tsai 0.3.0 tsai will only install hard dependencies. +Other soft dependencies (which are only required for selected tasks) +will not be installed by default (this is the recommended approach. If +you require any of the dependencies that is not installed, tsai will ask +you to install it when necessary). If you still want to install tsai +with all its dependencies you can do it by running: +``` python +pip install tsai[extras] +``` +### Conda install +You can also install tsai using conda (note that if you replace conda +with mamba the install process will be much faster and more reliable): +``` python +conda install -c timeseriesai tsai +``` +## Documentation +Here’s the link to the +[documentation](https://timeseriesai.github.io/tsai/). +## Available models: +Here’s a list with some of the state-of-the-art models available in +`tsai`: +- [LSTM](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/RNN.py) + (Hochreiter, 1997) + ([paper](https://ieeexplore.ieee.org/abstract/document/6795963/)) +- [GRU](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/RNN.py) + (Cho, 2014) ([paper](https://arxiv.org/abs/1412.3555)) +- [MLP](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/MLP.py) - + Multilayer Perceptron (Wang, 2016) + ([paper](https://arxiv.org/abs/1611.06455)) +- [FCN](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/FCN.py) - + Fully Convolutional Network (Wang, 2016) + ([paper](https://arxiv.org/abs/1611.06455)) +- [ResNet](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/ResNet.py) - + Residual Network (Wang, 2016) + ([paper](https://arxiv.org/abs/1611.06455)) +- [LSTM-FCN](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/RNN_FCN.py) + (Karim, 2017) ([paper](https://arxiv.org/abs/1709.05206)) +- [GRU-FCN](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/RNN_FCN.py) + (Elsayed, 2018) ([paper](https://arxiv.org/abs/1812.07683)) +- [mWDN](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/mWDN.py) - + Multilevel wavelet decomposition network (Wang, 2018) + ([paper](https://dl.acm.org/doi/abs/10.1145/3219819.3220060)) +- [TCN](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/TCN.py) - + Temporal Convolutional Network (Bai, 2018) + ([paper](https://arxiv.org/abs/1803.01271)) +- [MLSTM-FCN](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/RNN_FCN.py) - + Multivariate LSTM-FCN (Karim, 2019) + ([paper](https://www.sciencedirect.com/science/article/abs/pii/S0893608019301200)) +- [InceptionTime](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/InceptionTime.py) + (Fawaz, 2019) ([paper](https://arxiv.org/abs/1909.04939)) +- [Rocket](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/ROCKET.py) + (Dempster, 2019) ([paper](https://arxiv.org/abs/1910.13051)) +- [XceptionTime](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/XceptionTime.py) + (Rahimian, 2019) ([paper](https://arxiv.org/abs/1911.03803)) +- [ResCNN](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/ResCNN.py) - + 1D-ResCNN (Zou , 2019) + ([paper](https://www.sciencedirect.com/science/article/pii/S0925231219311506)) +- [TabModel](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/TabModel.py) - + modified from fastai’s + [TabularModel](https://docs.fast.ai/tabular.model.html#TabularModel) +- [OmniScale](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/OmniScaleCNN.py) - + Omni-Scale 1D-CNN (Tang, 2020) + ([paper](https://arxiv.org/abs/2002.10061)) +- [TST](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/TST.py) - + Time Series Transformer (Zerveas, 2020) + ([paper](https://dl.acm.org/doi/abs/10.1145/3447548.3467401)) +- [TabTransformer](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/TabTransformer.py) + (Huang, 2020) ([paper](https://arxiv.org/pdf/2012.06678)) +- [TSiT](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/TSiTPlus.py) + Adapted from ViT (Dosovitskiy, 2020) + ([paper](https://arxiv.org/abs/2010.11929)) +- [MiniRocket](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/MINIROCKET.py) + (Dempster, 2021) ([paper](https://arxiv.org/abs/2102.00457)) +- [XCM](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/XCM.py) - + An Explainable Convolutional Neural Network (Fauvel, 2021) + ([paper](https://hal.inria.fr/hal-03469487/document)) +- [gMLP](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/gMLP.py) - + Gated Multilayer Perceptron (Liu, 2021) + ([paper](https://arxiv.org/abs/2105.08050)) +- [TSPerceiver](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/TSPerceiver.py) - + Adapted from Perceiver IO (Jaegle, 2021) + ([paper](https://arxiv.org/abs/2107.14795)) +- [GatedTabTransformer](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/GatedTabTransformer.py) + (Cholakov, 2022) ([paper](https://arxiv.org/abs/2201.00199)) +- [TSSequencerPlus](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/TSSequencerPlus.py) - + Adapted from Sequencer (Tatsunami, 2022) + ([paper](https://arxiv.org/abs/2205.01972)) +- [PatchTST](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/PatchTST.py) - + (Nie, 2022) ([paper](https://arxiv.org/abs/2211.14730)) +plus other custom models like: TransformerModel, LSTMAttention, +GRUAttention, … +## How to start using tsai? +To get to know the tsai package, we’d suggest you start with this +notebook in Google Colab: +**[01_Intro_to_Time_Series_Classification](https://colab.research.google.com/github/timeseriesAI/tsai/blob/master/tutorial_nbs/01_Intro_to_Time_Series_Classification.ipynb)** +It provides an overview of a time series classification task. +We have also develop many other [tutorial +notebooks](https://github.com/timeseriesAI/tsai/tree/main/tutorial_nbs). +To use tsai in your own notebooks, the only thing you need to do after +you have installed the package is to run this: +``` python +from tsai.all import * +``` +## Examples +These are just a few examples of how you can use `tsai`: +### Binary, univariate classification +**Training:** +``` python +from tsai.basics import * +X, y, splits = get_classification_data('ECG200', split_data=False) +tfms = [None, TSClassification()] +batch_tfms = TSStandardize() +clf = TSClassifier(X, y, splits=splits, path='models', arch="InceptionTimePlus", tfms=tfms, batch_tfms=batch_tfms, metrics=accuracy, cbs=ShowGraph()) +clf.fit_one_cycle(100, 3e-4) +clf.export("clf.pkl") +``` +**Inference:** +``` python +from tsai.inference import load_learner +clf = load_learner("models/clf.pkl") +probas, target, preds = clf.get_X_preds(X[splits[1]], y[splits[1]]) +``` +### Multi-class, multivariate classification +**Training:** +``` python +from tsai.basics import * +X, y, splits = get_classification_data('LSST', split_data=False) +tfms = [None, TSClassification()] +batch_tfms = TSStandardize(by_sample=True) +mv_clf = TSClassifier(X, y, splits=splits, path='models', arch="InceptionTimePlus", tfms=tfms, batch_tfms=batch_tfms, metrics=accuracy, cbs=ShowGraph()) +mv_clf.fit_one_cycle(10, 1e-2) +mv_clf.export("mv_clf.pkl") +``` +**Inference:** +``` python +from tsai.inference import load_learner +mv_clf = load_learner("models/mv_clf.pkl") +probas, target, preds = mv_clf.get_X_preds(X[splits[1]], y[splits[1]]) +``` +### Multivariate Regression +**Training:** +``` python +from tsai.basics import * +X, y, splits = get_regression_data('AppliancesEnergy', split_data=False) +tfms = [None, TSRegression()] +batch_tfms = TSStandardize(by_sample=True) +reg = TSRegressor(X, y, splits=splits, path='models', arch="TSTPlus", tfms=tfms, batch_tfms=batch_tfms, metrics=rmse, cbs=ShowGraph(), verbose=True) +reg.fit_one_cycle(100, 3e-4) +reg.export("reg.pkl") +``` +**Inference:** +``` python +from tsai.inference import load_learner +reg = load_learner("models/reg.pkl") +raw_preds, target, preds = reg.get_X_preds(X[splits[1]], y[splits[1]]) +``` +The ROCKETs (RocketClassifier, RocketRegressor, MiniRocketClassifier, +MiniRocketRegressor, MiniRocketVotingClassifier or +MiniRocketVotingRegressor) are somewhat different models. They are not +actually deep learning models (although they use convolutions) and are +used in a different way. +⚠️ You’ll also need to install sktime to be able to use them. You can +install it separately: +``` python +pip install sktime +``` +or use: +``` python +pip install tsai[extras] +``` +**Training:** +``` python +from sklearn.metrics import mean_squared_error, make_scorer +from tsai.data.external import get_Monash_regression_data +from tsai.models.MINIROCKET import MiniRocketRegressor +X_train, y_train, *_ = get_Monash_regression_data('AppliancesEnergy') +rmse_scorer = make_scorer(mean_squared_error, greater_is_better=False) +reg = MiniRocketRegressor(scoring=rmse_scorer) +reg.fit(X_train, y_train) +reg.save('MiniRocketRegressor') +``` +**Inference:** +``` python +from sklearn.metrics import mean_squared_error +from tsai.data.external import get_Monash_regression_data +from tsai.models.MINIROCKET import load_minirocket +*_, X_test, y_test = get_Monash_regression_data('AppliancesEnergy') +reg = load_minirocket('MiniRocketRegressor') +y_pred = reg.predict(X_test) +mean_squared_error(y_test, y_pred, squared=False) +``` +### Forecasting +You can use tsai for forecast in the following scenarios: +- univariate or multivariate time series input +- univariate or multivariate time series output +- single or multi-step ahead +You’ll need to: \* prepare X (time series input) and the target y (see +[documentation](https://timeseriesai.github.io/tsai/data.preparation.html)) +\* select PatchTST or one of tsai’s models ending in Plus (TSTPlus, +InceptionTimePlus, TSiTPlus, etc). The model will auto-configure a head +to yield an output with the same shape as the target input y. +#### Single step +**Training:** +``` python +from tsai.basics import * +ts = get_forecasting_time_series("Sunspots").values +X, y = SlidingWindow(60, horizon=1)(ts) +splits = TimeSplitter(235)(y) +tfms = [None, TSForecasting()] +batch_tfms = TSStandardize() +fcst = TSForecaster(X, y, splits=splits, path='models', tfms=tfms, batch_tfms=batch_tfms, bs=512, arch="TSTPlus", metrics=mae, cbs=ShowGraph()) +fcst.fit_one_cycle(50, 1e-3) +fcst.export("fcst.pkl") +``` +**Inference:** +``` python +from tsai.inference import load_learner +fcst = load_learner("models/fcst.pkl", cpu=False) +raw_preds, target, preds = fcst.get_X_preds(X[splits[1]], y[splits[1]]) +raw_preds.shape +# torch.Size([235, 1]) +``` +#### Multi-step +This example show how to build a 3-step ahead univariate forecast. +**Training:** +``` python +from tsai.basics import * +ts = get_forecasting_time_series("Sunspots").values +X, y = SlidingWindow(60, horizon=3)(ts) +splits = TimeSplitter(235, fcst_horizon=3)(y) +tfms = [None, TSForecasting()] +batch_tfms = TSStandardize() +fcst = TSForecaster(X, y, splits=splits, path='models', tfms=tfms, batch_tfms=batch_tfms, bs=512, arch="TSTPlus", metrics=mae, cbs=ShowGraph()) +fcst.fit_one_cycle(50, 1e-3) +fcst.export("fcst.pkl") +``` +**Inference:** +``` python +from tsai.inference import load_learner +fcst = load_learner("models/fcst.pkl", cpu=False) +raw_preds, target, preds = fcst.get_X_preds(X[splits[1]], y[splits[1]]) +raw_preds.shape +# torch.Size([235, 3]) +``` +## Input data format +The input format for all time series models and image models in tsai is +the same. An np.ndarray (or array-like object like zarr, etc) with 3 +dimensions: +**\[# samples x \# variables x sequence length\]** +The input format for tabular models in tsai (like TabModel, +TabTransformer and TabFusionTransformer) is a pandas dataframe. See +[example](https://timeseriesai.github.io/tsai/models.TabModel.html). +## How to contribute to tsai? +We welcome contributions of all kinds. Development of enhancements, bug +fixes, documentation, tutorial notebooks, … +We have created a guide to help you start contributing to tsai. You can +read it +[here](https://github.com/timeseriesAI/tsai/blob/main/CONTRIBUTING.md). +## Enterprise support and consulting services: +Want to make the most out of timeseriesAI/tsai in a professional +setting? Let us help. Send us an email to learn more: +info@timeseriesai.co +## Citing tsai +If you use tsai in your research please use the following BibTeX entry: +``` text +@Misc{tsai, + author = {Ignacio Oguiza}, + title = {tsai - A state-of-the-art deep learning library for time series and sequential data}, + howpublished = {Github}, + year = {2022}, + url = {https://github.com/timeseriesAI/tsai} +} +``` + +%package -n python3-tsai +Summary: Practical Deep Learning for Time Series / Sequential Data library based on fastai & Pytorch +Provides: python-tsai +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-tsai + +
+ +
+

+![CI](https://github.com/timeseriesai/tsai/workflows/CI/badge.svg) +[![PyPI](https://img.shields.io/pypi/v/tsai?color=blue&label=pypi%20version.png)](https://pypi.org/project/tsai/#description) +[![Conda (channel +only)](https://img.shields.io/conda/vn/timeseriesai/tsai?color=brightgreen&label=conda%20version.png)](https://anaconda.org/timeseriesai/tsai) +[![DOI](https://zenodo.org/badge/211822289.svg)](https://zenodo.org/badge/latestdoi/211822289) +![PRs](https://img.shields.io/badge/PRs-welcome-brightgreen.svg) +## Description +> State-of-the-art Deep Learning library for Time Series and Sequences. +`tsai` is an open-source deep learning package built on top of Pytorch & +fastai focused on state-of-the-art techniques for time series tasks like +classification, regression, forecasting, imputation… +`tsai` is currently under active development by timeseriesAI. +## What’s new: +During the last few releases, here are some of the most significant +additions to `tsai`: +- **New models**: PatchTST (Accepted by ICLR 2023), RNN with Attention + (RNNAttention, LSTMAttention, GRUAttention), TabFusionTransformer, … +- **New datasets**: we have increased the number of datasets you can + download using `tsai`: + - 128 univariate classification datasets + - 30 multivariate classification datasets + - 15 regression datasets + - 62 forecasting datasets + - 9 long term forecasting datasets +- **New tutorials**: + [PatchTST](https://github.com/timeseriesAI/tsai/blob/main/tutorial_nbs/15_PatchTST_a_new_transformer_for_LTSF.ipynb). + Based on some of your requests, we are planning to release additional + tutorials on data preparation and forecasting. +- **New functionality**: sklearn-type pipeline transforms, walk-foward + cross validation, reduced RAM requirements, and a lot of new + functionality to perform more accurate time series forecasts. +- Pytorch 2.0 support. +## Installation +### Pip install +You can install the **latest stable** version from pip using: +``` python +pip install tsai +``` +If you plan to develop tsai yourself, or want to be on the cutting edge, +you can use an editable install. First install PyTorch, and then: +``` python +git clone https://github.com/timeseriesAI/tsai +pip install -e "tsai[dev]" +``` +Note: starting with tsai 0.3.0 tsai will only install hard dependencies. +Other soft dependencies (which are only required for selected tasks) +will not be installed by default (this is the recommended approach. If +you require any of the dependencies that is not installed, tsai will ask +you to install it when necessary). If you still want to install tsai +with all its dependencies you can do it by running: +``` python +pip install tsai[extras] +``` +### Conda install +You can also install tsai using conda (note that if you replace conda +with mamba the install process will be much faster and more reliable): +``` python +conda install -c timeseriesai tsai +``` +## Documentation +Here’s the link to the +[documentation](https://timeseriesai.github.io/tsai/). +## Available models: +Here’s a list with some of the state-of-the-art models available in +`tsai`: +- [LSTM](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/RNN.py) + (Hochreiter, 1997) + ([paper](https://ieeexplore.ieee.org/abstract/document/6795963/)) +- [GRU](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/RNN.py) + (Cho, 2014) ([paper](https://arxiv.org/abs/1412.3555)) +- [MLP](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/MLP.py) - + Multilayer Perceptron (Wang, 2016) + ([paper](https://arxiv.org/abs/1611.06455)) +- [FCN](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/FCN.py) - + Fully Convolutional Network (Wang, 2016) + ([paper](https://arxiv.org/abs/1611.06455)) +- [ResNet](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/ResNet.py) - + Residual Network (Wang, 2016) + ([paper](https://arxiv.org/abs/1611.06455)) +- [LSTM-FCN](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/RNN_FCN.py) + (Karim, 2017) ([paper](https://arxiv.org/abs/1709.05206)) +- [GRU-FCN](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/RNN_FCN.py) + (Elsayed, 2018) ([paper](https://arxiv.org/abs/1812.07683)) +- [mWDN](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/mWDN.py) - + Multilevel wavelet decomposition network (Wang, 2018) + ([paper](https://dl.acm.org/doi/abs/10.1145/3219819.3220060)) +- [TCN](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/TCN.py) - + Temporal Convolutional Network (Bai, 2018) + ([paper](https://arxiv.org/abs/1803.01271)) +- [MLSTM-FCN](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/RNN_FCN.py) - + Multivariate LSTM-FCN (Karim, 2019) + ([paper](https://www.sciencedirect.com/science/article/abs/pii/S0893608019301200)) +- [InceptionTime](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/InceptionTime.py) + (Fawaz, 2019) ([paper](https://arxiv.org/abs/1909.04939)) +- [Rocket](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/ROCKET.py) + (Dempster, 2019) ([paper](https://arxiv.org/abs/1910.13051)) +- [XceptionTime](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/XceptionTime.py) + (Rahimian, 2019) ([paper](https://arxiv.org/abs/1911.03803)) +- [ResCNN](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/ResCNN.py) - + 1D-ResCNN (Zou , 2019) + ([paper](https://www.sciencedirect.com/science/article/pii/S0925231219311506)) +- [TabModel](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/TabModel.py) - + modified from fastai’s + [TabularModel](https://docs.fast.ai/tabular.model.html#TabularModel) +- [OmniScale](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/OmniScaleCNN.py) - + Omni-Scale 1D-CNN (Tang, 2020) + ([paper](https://arxiv.org/abs/2002.10061)) +- [TST](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/TST.py) - + Time Series Transformer (Zerveas, 2020) + ([paper](https://dl.acm.org/doi/abs/10.1145/3447548.3467401)) +- [TabTransformer](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/TabTransformer.py) + (Huang, 2020) ([paper](https://arxiv.org/pdf/2012.06678)) +- [TSiT](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/TSiTPlus.py) + Adapted from ViT (Dosovitskiy, 2020) + ([paper](https://arxiv.org/abs/2010.11929)) +- [MiniRocket](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/MINIROCKET.py) + (Dempster, 2021) ([paper](https://arxiv.org/abs/2102.00457)) +- [XCM](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/XCM.py) - + An Explainable Convolutional Neural Network (Fauvel, 2021) + ([paper](https://hal.inria.fr/hal-03469487/document)) +- [gMLP](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/gMLP.py) - + Gated Multilayer Perceptron (Liu, 2021) + ([paper](https://arxiv.org/abs/2105.08050)) +- [TSPerceiver](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/TSPerceiver.py) - + Adapted from Perceiver IO (Jaegle, 2021) + ([paper](https://arxiv.org/abs/2107.14795)) +- [GatedTabTransformer](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/GatedTabTransformer.py) + (Cholakov, 2022) ([paper](https://arxiv.org/abs/2201.00199)) +- [TSSequencerPlus](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/TSSequencerPlus.py) - + Adapted from Sequencer (Tatsunami, 2022) + ([paper](https://arxiv.org/abs/2205.01972)) +- [PatchTST](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/PatchTST.py) - + (Nie, 2022) ([paper](https://arxiv.org/abs/2211.14730)) +plus other custom models like: TransformerModel, LSTMAttention, +GRUAttention, … +## How to start using tsai? +To get to know the tsai package, we’d suggest you start with this +notebook in Google Colab: +**[01_Intro_to_Time_Series_Classification](https://colab.research.google.com/github/timeseriesAI/tsai/blob/master/tutorial_nbs/01_Intro_to_Time_Series_Classification.ipynb)** +It provides an overview of a time series classification task. +We have also develop many other [tutorial +notebooks](https://github.com/timeseriesAI/tsai/tree/main/tutorial_nbs). +To use tsai in your own notebooks, the only thing you need to do after +you have installed the package is to run this: +``` python +from tsai.all import * +``` +## Examples +These are just a few examples of how you can use `tsai`: +### Binary, univariate classification +**Training:** +``` python +from tsai.basics import * +X, y, splits = get_classification_data('ECG200', split_data=False) +tfms = [None, TSClassification()] +batch_tfms = TSStandardize() +clf = TSClassifier(X, y, splits=splits, path='models', arch="InceptionTimePlus", tfms=tfms, batch_tfms=batch_tfms, metrics=accuracy, cbs=ShowGraph()) +clf.fit_one_cycle(100, 3e-4) +clf.export("clf.pkl") +``` +**Inference:** +``` python +from tsai.inference import load_learner +clf = load_learner("models/clf.pkl") +probas, target, preds = clf.get_X_preds(X[splits[1]], y[splits[1]]) +``` +### Multi-class, multivariate classification +**Training:** +``` python +from tsai.basics import * +X, y, splits = get_classification_data('LSST', split_data=False) +tfms = [None, TSClassification()] +batch_tfms = TSStandardize(by_sample=True) +mv_clf = TSClassifier(X, y, splits=splits, path='models', arch="InceptionTimePlus", tfms=tfms, batch_tfms=batch_tfms, metrics=accuracy, cbs=ShowGraph()) +mv_clf.fit_one_cycle(10, 1e-2) +mv_clf.export("mv_clf.pkl") +``` +**Inference:** +``` python +from tsai.inference import load_learner +mv_clf = load_learner("models/mv_clf.pkl") +probas, target, preds = mv_clf.get_X_preds(X[splits[1]], y[splits[1]]) +``` +### Multivariate Regression +**Training:** +``` python +from tsai.basics import * +X, y, splits = get_regression_data('AppliancesEnergy', split_data=False) +tfms = [None, TSRegression()] +batch_tfms = TSStandardize(by_sample=True) +reg = TSRegressor(X, y, splits=splits, path='models', arch="TSTPlus", tfms=tfms, batch_tfms=batch_tfms, metrics=rmse, cbs=ShowGraph(), verbose=True) +reg.fit_one_cycle(100, 3e-4) +reg.export("reg.pkl") +``` +**Inference:** +``` python +from tsai.inference import load_learner +reg = load_learner("models/reg.pkl") +raw_preds, target, preds = reg.get_X_preds(X[splits[1]], y[splits[1]]) +``` +The ROCKETs (RocketClassifier, RocketRegressor, MiniRocketClassifier, +MiniRocketRegressor, MiniRocketVotingClassifier or +MiniRocketVotingRegressor) are somewhat different models. They are not +actually deep learning models (although they use convolutions) and are +used in a different way. +⚠️ You’ll also need to install sktime to be able to use them. You can +install it separately: +``` python +pip install sktime +``` +or use: +``` python +pip install tsai[extras] +``` +**Training:** +``` python +from sklearn.metrics import mean_squared_error, make_scorer +from tsai.data.external import get_Monash_regression_data +from tsai.models.MINIROCKET import MiniRocketRegressor +X_train, y_train, *_ = get_Monash_regression_data('AppliancesEnergy') +rmse_scorer = make_scorer(mean_squared_error, greater_is_better=False) +reg = MiniRocketRegressor(scoring=rmse_scorer) +reg.fit(X_train, y_train) +reg.save('MiniRocketRegressor') +``` +**Inference:** +``` python +from sklearn.metrics import mean_squared_error +from tsai.data.external import get_Monash_regression_data +from tsai.models.MINIROCKET import load_minirocket +*_, X_test, y_test = get_Monash_regression_data('AppliancesEnergy') +reg = load_minirocket('MiniRocketRegressor') +y_pred = reg.predict(X_test) +mean_squared_error(y_test, y_pred, squared=False) +``` +### Forecasting +You can use tsai for forecast in the following scenarios: +- univariate or multivariate time series input +- univariate or multivariate time series output +- single or multi-step ahead +You’ll need to: \* prepare X (time series input) and the target y (see +[documentation](https://timeseriesai.github.io/tsai/data.preparation.html)) +\* select PatchTST or one of tsai’s models ending in Plus (TSTPlus, +InceptionTimePlus, TSiTPlus, etc). The model will auto-configure a head +to yield an output with the same shape as the target input y. +#### Single step +**Training:** +``` python +from tsai.basics import * +ts = get_forecasting_time_series("Sunspots").values +X, y = SlidingWindow(60, horizon=1)(ts) +splits = TimeSplitter(235)(y) +tfms = [None, TSForecasting()] +batch_tfms = TSStandardize() +fcst = TSForecaster(X, y, splits=splits, path='models', tfms=tfms, batch_tfms=batch_tfms, bs=512, arch="TSTPlus", metrics=mae, cbs=ShowGraph()) +fcst.fit_one_cycle(50, 1e-3) +fcst.export("fcst.pkl") +``` +**Inference:** +``` python +from tsai.inference import load_learner +fcst = load_learner("models/fcst.pkl", cpu=False) +raw_preds, target, preds = fcst.get_X_preds(X[splits[1]], y[splits[1]]) +raw_preds.shape +# torch.Size([235, 1]) +``` +#### Multi-step +This example show how to build a 3-step ahead univariate forecast. +**Training:** +``` python +from tsai.basics import * +ts = get_forecasting_time_series("Sunspots").values +X, y = SlidingWindow(60, horizon=3)(ts) +splits = TimeSplitter(235, fcst_horizon=3)(y) +tfms = [None, TSForecasting()] +batch_tfms = TSStandardize() +fcst = TSForecaster(X, y, splits=splits, path='models', tfms=tfms, batch_tfms=batch_tfms, bs=512, arch="TSTPlus", metrics=mae, cbs=ShowGraph()) +fcst.fit_one_cycle(50, 1e-3) +fcst.export("fcst.pkl") +``` +**Inference:** +``` python +from tsai.inference import load_learner +fcst = load_learner("models/fcst.pkl", cpu=False) +raw_preds, target, preds = fcst.get_X_preds(X[splits[1]], y[splits[1]]) +raw_preds.shape +# torch.Size([235, 3]) +``` +## Input data format +The input format for all time series models and image models in tsai is +the same. An np.ndarray (or array-like object like zarr, etc) with 3 +dimensions: +**\[# samples x \# variables x sequence length\]** +The input format for tabular models in tsai (like TabModel, +TabTransformer and TabFusionTransformer) is a pandas dataframe. See +[example](https://timeseriesai.github.io/tsai/models.TabModel.html). +## How to contribute to tsai? +We welcome contributions of all kinds. Development of enhancements, bug +fixes, documentation, tutorial notebooks, … +We have created a guide to help you start contributing to tsai. You can +read it +[here](https://github.com/timeseriesAI/tsai/blob/main/CONTRIBUTING.md). +## Enterprise support and consulting services: +Want to make the most out of timeseriesAI/tsai in a professional +setting? Let us help. Send us an email to learn more: +info@timeseriesai.co +## Citing tsai +If you use tsai in your research please use the following BibTeX entry: +``` text +@Misc{tsai, + author = {Ignacio Oguiza}, + title = {tsai - A state-of-the-art deep learning library for time series and sequential data}, + howpublished = {Github}, + year = {2022}, + url = {https://github.com/timeseriesAI/tsai} +} +``` + +%package help +Summary: Development documents and examples for tsai +Provides: python3-tsai-doc +%description help + +
+ +
+

+![CI](https://github.com/timeseriesai/tsai/workflows/CI/badge.svg) +[![PyPI](https://img.shields.io/pypi/v/tsai?color=blue&label=pypi%20version.png)](https://pypi.org/project/tsai/#description) +[![Conda (channel +only)](https://img.shields.io/conda/vn/timeseriesai/tsai?color=brightgreen&label=conda%20version.png)](https://anaconda.org/timeseriesai/tsai) +[![DOI](https://zenodo.org/badge/211822289.svg)](https://zenodo.org/badge/latestdoi/211822289) +![PRs](https://img.shields.io/badge/PRs-welcome-brightgreen.svg) +## Description +> State-of-the-art Deep Learning library for Time Series and Sequences. +`tsai` is an open-source deep learning package built on top of Pytorch & +fastai focused on state-of-the-art techniques for time series tasks like +classification, regression, forecasting, imputation… +`tsai` is currently under active development by timeseriesAI. +## What’s new: +During the last few releases, here are some of the most significant +additions to `tsai`: +- **New models**: PatchTST (Accepted by ICLR 2023), RNN with Attention + (RNNAttention, LSTMAttention, GRUAttention), TabFusionTransformer, … +- **New datasets**: we have increased the number of datasets you can + download using `tsai`: + - 128 univariate classification datasets + - 30 multivariate classification datasets + - 15 regression datasets + - 62 forecasting datasets + - 9 long term forecasting datasets +- **New tutorials**: + [PatchTST](https://github.com/timeseriesAI/tsai/blob/main/tutorial_nbs/15_PatchTST_a_new_transformer_for_LTSF.ipynb). + Based on some of your requests, we are planning to release additional + tutorials on data preparation and forecasting. +- **New functionality**: sklearn-type pipeline transforms, walk-foward + cross validation, reduced RAM requirements, and a lot of new + functionality to perform more accurate time series forecasts. +- Pytorch 2.0 support. +## Installation +### Pip install +You can install the **latest stable** version from pip using: +``` python +pip install tsai +``` +If you plan to develop tsai yourself, or want to be on the cutting edge, +you can use an editable install. First install PyTorch, and then: +``` python +git clone https://github.com/timeseriesAI/tsai +pip install -e "tsai[dev]" +``` +Note: starting with tsai 0.3.0 tsai will only install hard dependencies. +Other soft dependencies (which are only required for selected tasks) +will not be installed by default (this is the recommended approach. If +you require any of the dependencies that is not installed, tsai will ask +you to install it when necessary). If you still want to install tsai +with all its dependencies you can do it by running: +``` python +pip install tsai[extras] +``` +### Conda install +You can also install tsai using conda (note that if you replace conda +with mamba the install process will be much faster and more reliable): +``` python +conda install -c timeseriesai tsai +``` +## Documentation +Here’s the link to the +[documentation](https://timeseriesai.github.io/tsai/). +## Available models: +Here’s a list with some of the state-of-the-art models available in +`tsai`: +- [LSTM](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/RNN.py) + (Hochreiter, 1997) + ([paper](https://ieeexplore.ieee.org/abstract/document/6795963/)) +- [GRU](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/RNN.py) + (Cho, 2014) ([paper](https://arxiv.org/abs/1412.3555)) +- [MLP](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/MLP.py) - + Multilayer Perceptron (Wang, 2016) + ([paper](https://arxiv.org/abs/1611.06455)) +- [FCN](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/FCN.py) - + Fully Convolutional Network (Wang, 2016) + ([paper](https://arxiv.org/abs/1611.06455)) +- [ResNet](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/ResNet.py) - + Residual Network (Wang, 2016) + ([paper](https://arxiv.org/abs/1611.06455)) +- [LSTM-FCN](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/RNN_FCN.py) + (Karim, 2017) ([paper](https://arxiv.org/abs/1709.05206)) +- [GRU-FCN](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/RNN_FCN.py) + (Elsayed, 2018) ([paper](https://arxiv.org/abs/1812.07683)) +- [mWDN](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/mWDN.py) - + Multilevel wavelet decomposition network (Wang, 2018) + ([paper](https://dl.acm.org/doi/abs/10.1145/3219819.3220060)) +- [TCN](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/TCN.py) - + Temporal Convolutional Network (Bai, 2018) + ([paper](https://arxiv.org/abs/1803.01271)) +- [MLSTM-FCN](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/RNN_FCN.py) - + Multivariate LSTM-FCN (Karim, 2019) + ([paper](https://www.sciencedirect.com/science/article/abs/pii/S0893608019301200)) +- [InceptionTime](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/InceptionTime.py) + (Fawaz, 2019) ([paper](https://arxiv.org/abs/1909.04939)) +- [Rocket](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/ROCKET.py) + (Dempster, 2019) ([paper](https://arxiv.org/abs/1910.13051)) +- [XceptionTime](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/XceptionTime.py) + (Rahimian, 2019) ([paper](https://arxiv.org/abs/1911.03803)) +- [ResCNN](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/ResCNN.py) - + 1D-ResCNN (Zou , 2019) + ([paper](https://www.sciencedirect.com/science/article/pii/S0925231219311506)) +- [TabModel](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/TabModel.py) - + modified from fastai’s + [TabularModel](https://docs.fast.ai/tabular.model.html#TabularModel) +- [OmniScale](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/OmniScaleCNN.py) - + Omni-Scale 1D-CNN (Tang, 2020) + ([paper](https://arxiv.org/abs/2002.10061)) +- [TST](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/TST.py) - + Time Series Transformer (Zerveas, 2020) + ([paper](https://dl.acm.org/doi/abs/10.1145/3447548.3467401)) +- [TabTransformer](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/TabTransformer.py) + (Huang, 2020) ([paper](https://arxiv.org/pdf/2012.06678)) +- [TSiT](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/TSiTPlus.py) + Adapted from ViT (Dosovitskiy, 2020) + ([paper](https://arxiv.org/abs/2010.11929)) +- [MiniRocket](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/MINIROCKET.py) + (Dempster, 2021) ([paper](https://arxiv.org/abs/2102.00457)) +- [XCM](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/XCM.py) - + An Explainable Convolutional Neural Network (Fauvel, 2021) + ([paper](https://hal.inria.fr/hal-03469487/document)) +- [gMLP](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/gMLP.py) - + Gated Multilayer Perceptron (Liu, 2021) + ([paper](https://arxiv.org/abs/2105.08050)) +- [TSPerceiver](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/TSPerceiver.py) - + Adapted from Perceiver IO (Jaegle, 2021) + ([paper](https://arxiv.org/abs/2107.14795)) +- [GatedTabTransformer](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/GatedTabTransformer.py) + (Cholakov, 2022) ([paper](https://arxiv.org/abs/2201.00199)) +- [TSSequencerPlus](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/TSSequencerPlus.py) - + Adapted from Sequencer (Tatsunami, 2022) + ([paper](https://arxiv.org/abs/2205.01972)) +- [PatchTST](https://github.com/timeseriesAI/tsai/blob/main/tsai/models/PatchTST.py) - + (Nie, 2022) ([paper](https://arxiv.org/abs/2211.14730)) +plus other custom models like: TransformerModel, LSTMAttention, +GRUAttention, … +## How to start using tsai? +To get to know the tsai package, we’d suggest you start with this +notebook in Google Colab: +**[01_Intro_to_Time_Series_Classification](https://colab.research.google.com/github/timeseriesAI/tsai/blob/master/tutorial_nbs/01_Intro_to_Time_Series_Classification.ipynb)** +It provides an overview of a time series classification task. +We have also develop many other [tutorial +notebooks](https://github.com/timeseriesAI/tsai/tree/main/tutorial_nbs). +To use tsai in your own notebooks, the only thing you need to do after +you have installed the package is to run this: +``` python +from tsai.all import * +``` +## Examples +These are just a few examples of how you can use `tsai`: +### Binary, univariate classification +**Training:** +``` python +from tsai.basics import * +X, y, splits = get_classification_data('ECG200', split_data=False) +tfms = [None, TSClassification()] +batch_tfms = TSStandardize() +clf = TSClassifier(X, y, splits=splits, path='models', arch="InceptionTimePlus", tfms=tfms, batch_tfms=batch_tfms, metrics=accuracy, cbs=ShowGraph()) +clf.fit_one_cycle(100, 3e-4) +clf.export("clf.pkl") +``` +**Inference:** +``` python +from tsai.inference import load_learner +clf = load_learner("models/clf.pkl") +probas, target, preds = clf.get_X_preds(X[splits[1]], y[splits[1]]) +``` +### Multi-class, multivariate classification +**Training:** +``` python +from tsai.basics import * +X, y, splits = get_classification_data('LSST', split_data=False) +tfms = [None, TSClassification()] +batch_tfms = TSStandardize(by_sample=True) +mv_clf = TSClassifier(X, y, splits=splits, path='models', arch="InceptionTimePlus", tfms=tfms, batch_tfms=batch_tfms, metrics=accuracy, cbs=ShowGraph()) +mv_clf.fit_one_cycle(10, 1e-2) +mv_clf.export("mv_clf.pkl") +``` +**Inference:** +``` python +from tsai.inference import load_learner +mv_clf = load_learner("models/mv_clf.pkl") +probas, target, preds = mv_clf.get_X_preds(X[splits[1]], y[splits[1]]) +``` +### Multivariate Regression +**Training:** +``` python +from tsai.basics import * +X, y, splits = get_regression_data('AppliancesEnergy', split_data=False) +tfms = [None, TSRegression()] +batch_tfms = TSStandardize(by_sample=True) +reg = TSRegressor(X, y, splits=splits, path='models', arch="TSTPlus", tfms=tfms, batch_tfms=batch_tfms, metrics=rmse, cbs=ShowGraph(), verbose=True) +reg.fit_one_cycle(100, 3e-4) +reg.export("reg.pkl") +``` +**Inference:** +``` python +from tsai.inference import load_learner +reg = load_learner("models/reg.pkl") +raw_preds, target, preds = reg.get_X_preds(X[splits[1]], y[splits[1]]) +``` +The ROCKETs (RocketClassifier, RocketRegressor, MiniRocketClassifier, +MiniRocketRegressor, MiniRocketVotingClassifier or +MiniRocketVotingRegressor) are somewhat different models. They are not +actually deep learning models (although they use convolutions) and are +used in a different way. +⚠️ You’ll also need to install sktime to be able to use them. You can +install it separately: +``` python +pip install sktime +``` +or use: +``` python +pip install tsai[extras] +``` +**Training:** +``` python +from sklearn.metrics import mean_squared_error, make_scorer +from tsai.data.external import get_Monash_regression_data +from tsai.models.MINIROCKET import MiniRocketRegressor +X_train, y_train, *_ = get_Monash_regression_data('AppliancesEnergy') +rmse_scorer = make_scorer(mean_squared_error, greater_is_better=False) +reg = MiniRocketRegressor(scoring=rmse_scorer) +reg.fit(X_train, y_train) +reg.save('MiniRocketRegressor') +``` +**Inference:** +``` python +from sklearn.metrics import mean_squared_error +from tsai.data.external import get_Monash_regression_data +from tsai.models.MINIROCKET import load_minirocket +*_, X_test, y_test = get_Monash_regression_data('AppliancesEnergy') +reg = load_minirocket('MiniRocketRegressor') +y_pred = reg.predict(X_test) +mean_squared_error(y_test, y_pred, squared=False) +``` +### Forecasting +You can use tsai for forecast in the following scenarios: +- univariate or multivariate time series input +- univariate or multivariate time series output +- single or multi-step ahead +You’ll need to: \* prepare X (time series input) and the target y (see +[documentation](https://timeseriesai.github.io/tsai/data.preparation.html)) +\* select PatchTST or one of tsai’s models ending in Plus (TSTPlus, +InceptionTimePlus, TSiTPlus, etc). The model will auto-configure a head +to yield an output with the same shape as the target input y. +#### Single step +**Training:** +``` python +from tsai.basics import * +ts = get_forecasting_time_series("Sunspots").values +X, y = SlidingWindow(60, horizon=1)(ts) +splits = TimeSplitter(235)(y) +tfms = [None, TSForecasting()] +batch_tfms = TSStandardize() +fcst = TSForecaster(X, y, splits=splits, path='models', tfms=tfms, batch_tfms=batch_tfms, bs=512, arch="TSTPlus", metrics=mae, cbs=ShowGraph()) +fcst.fit_one_cycle(50, 1e-3) +fcst.export("fcst.pkl") +``` +**Inference:** +``` python +from tsai.inference import load_learner +fcst = load_learner("models/fcst.pkl", cpu=False) +raw_preds, target, preds = fcst.get_X_preds(X[splits[1]], y[splits[1]]) +raw_preds.shape +# torch.Size([235, 1]) +``` +#### Multi-step +This example show how to build a 3-step ahead univariate forecast. +**Training:** +``` python +from tsai.basics import * +ts = get_forecasting_time_series("Sunspots").values +X, y = SlidingWindow(60, horizon=3)(ts) +splits = TimeSplitter(235, fcst_horizon=3)(y) +tfms = [None, TSForecasting()] +batch_tfms = TSStandardize() +fcst = TSForecaster(X, y, splits=splits, path='models', tfms=tfms, batch_tfms=batch_tfms, bs=512, arch="TSTPlus", metrics=mae, cbs=ShowGraph()) +fcst.fit_one_cycle(50, 1e-3) +fcst.export("fcst.pkl") +``` +**Inference:** +``` python +from tsai.inference import load_learner +fcst = load_learner("models/fcst.pkl", cpu=False) +raw_preds, target, preds = fcst.get_X_preds(X[splits[1]], y[splits[1]]) +raw_preds.shape +# torch.Size([235, 3]) +``` +## Input data format +The input format for all time series models and image models in tsai is +the same. An np.ndarray (or array-like object like zarr, etc) with 3 +dimensions: +**\[# samples x \# variables x sequence length\]** +The input format for tabular models in tsai (like TabModel, +TabTransformer and TabFusionTransformer) is a pandas dataframe. See +[example](https://timeseriesai.github.io/tsai/models.TabModel.html). +## How to contribute to tsai? +We welcome contributions of all kinds. Development of enhancements, bug +fixes, documentation, tutorial notebooks, … +We have created a guide to help you start contributing to tsai. You can +read it +[here](https://github.com/timeseriesAI/tsai/blob/main/CONTRIBUTING.md). +## Enterprise support and consulting services: +Want to make the most out of timeseriesAI/tsai in a professional +setting? Let us help. Send us an email to learn more: +info@timeseriesai.co +## Citing tsai +If you use tsai in your research please use the following BibTeX entry: +``` text +@Misc{tsai, + author = {Ignacio Oguiza}, + title = {tsai - A state-of-the-art deep learning library for time series and sequential data}, + howpublished = {Github}, + year = {2022}, + url = {https://github.com/timeseriesAI/tsai} +} +``` + +%prep +%autosetup -n tsai-0.3.6 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-tsai -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Mon May 15 2023 Python_Bot - 0.3.6-1 +- Package Spec generated -- cgit v1.2.3