tsai-rs
Time series deep learning in Rust — a feature-parity port of Python tsai.
Features
- Comprehensive Model Zoo: 42 architectures including InceptionTimePlus, PatchTST, TSTPlus, MiniRocket, RNNPlus, TransformerModel, and more
- Data Augmentation: 47 time series transforms, 4 label mixing, 7 imaging transforms
- Training Framework: 14 callbacks, 9 schedulers, 10 metrics, 10 loss functions, and checkpointing
- Hyperparameter Optimization: GridSearch, RandomSearch, SuccessiveHalving
- Dataset Archives: 255 datasets with auto-download (UCR, UEA, TSER, Monash Forecasting)
- Feature Extraction: 50+ tsfresh-style statistical features
- Analysis Tools: Confusion matrix, top losses, permutation importance, calibration
- Explainability: GradCAM, Integrated Gradients, attention visualization
- Multiple Backends: CPU (ndarray), GPU (WGPU/Metal), Apple MLX, or PyTorch (tch)
- Python Bindings: Full API via
tsai_rspackage
Quick Start
Add to your Cargo.toml:
[]
= "0.1"
Classification Example
use *;
Using sklearn-like API
use ;
let mut clf = new;
clf.fit?;
let predictions = clf.predict?;
Feature Flags
| Feature | Description |
|---|---|
backend-ndarray (default) |
CPU backend using ndarray |
backend-wgpu |
GPU backend (Metal on macOS, Vulkan on Linux/Windows) |
backend-mlx |
Native Apple Silicon GPU via MLX (macOS only) |
backend-tch |
PyTorch backend via tch-rs |
wandb |
Weights & Biases integration |
Enable GPU support:
# Cross-platform GPU (recommended for most users)
[]
= { = "0.1", = ["backend-wgpu"] }
# Native Apple Silicon (M1/M2/M3/M4 Macs)
[]
= { = "0.1", = ["backend-mlx"] }
Model Zoo (42 architectures)
CNN Models
InceptionTimePlus- InceptionTime with improvementsResNetPlus/ResCNN- ResNet adapted for time seriesXceptionTimePlus- Xception-inspired architectureOmniScaleCNN- Multi-scale CNNXCMPlus- Explainable CNNFCN- Fully Convolutional NetworkTCN- Temporal Convolutional NetworkMWDN- Multi-scale Wavelet Decomposition NetworkMLP- Multi-layer Perceptron baselineXResNet1d- Extended ResNet for 1D
Transformer Models
TSTPlus- Time Series TransformerTSiTPlus- Improved TS Transformer with multiple PE optionsTSPerceiver- Perceiver for time seriesPatchTST- Patch-based TransformerTransformerModel- Base Transformer with pre/post-norm optionsTSSequencer- Sequence-to-sequence TransformergMLP- Gated MLP for time series
ROCKET Family
MiniRocket/MultiRocket- Fast random convolutional features
RNN Models
RNNPlus- LSTM/GRU with improvementsmWDN- Multi-scale Wavelet RNN
Tabular & Hybrid Models
TabTransformer- Transformer for tabular dataTabModel- MLP for tabular dataTabFusion- Fusion of tabular and time seriesMultiInputNet- Multi-modal network (TS + tabular)
Data Formats
tsai-rs supports multiple data formats:
// NumPy
let x = read_npy?;
let = read_npz?;
// CSV
let dataset = read_csv?;
// Parquet
let dataset = read_parquet?;
Transforms
Apply data augmentation during training:
use ;
let transform = new
.add
.add
.add;
Available transforms include:
- Noise:
GaussianNoise - Warping:
TimeWarp,WindowWarp,MagWarp - Masking:
CutOut,FrequencyMask,TimeMask - Temporal:
HorizontalFlip,RandomShift,Rotation,Permutation - SpecAugment:
SpecAugment,TSRandomShift,TSHorizontalFlip,TSVerticalFlip - Mixing:
MixUp1d,CutMix1d,IntraClassCutMix1d - Imaging:
TSToRP,TSToGASF,TSToGADF,TSToMTF
CLI
# Install CLI
# List all 255 datasets across 4 archives
# Fetch a dataset
# Train a model
# Hyperparameter optimization
# Evaluate
Examples
See the examples/ directory for more:
ucr_inception_time.rs- UCR classification with InceptionTimePlussimple_classification.rs- Basic classification exampleforecasting.rs- Time series forecastingsklearn_api.rs- sklearn-like API demonstrationtrain_ucr_metal.rs- GPU training with WGPU/Metal backendtrain_ucr_mlx.rs- Apple MLX backend examplecompare_models.rs- Model comparison on UCR datasets
Python Bindings
Use tsai-rs from Python via the tsai_rs package:
# Build from source (requires Rust)
# List available datasets (255 total)
# 158 UCR
# 30 UEA
# 19 TSER
# 48 Forecasting
# Load UCR dataset
, , , =
# Configure a model
=
# Feature extraction (50+ tsfresh-style features)
=
=
# HPO search space
=
# Analysis tools
=
=
=
# Time series to image transforms
=
=
=
Benchmarks
Run benchmarks:
License
Apache-2.0. See LICENSE for details.
Acknowledgments
- tsai - The original Python library
- Burn - Rust deep learning framework
- Research papers cited in THIRD_PARTY_NOTICES.md
Contributing
Contributions welcome! Please read our contributing guidelines before submitting PRs.