Skip to content

mloning/rocket-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rust implementation of ROCKET time-series transform with Python bindings

This repo implements the ROCKET time-series transform in Rust with Python bindings. Originally, ROCKET is implemented in Python.

Usage

Using the arrow-head dataset provided by aeon:

from aeon.datasets import load_arrow_head
from rocket_rs import transform

x, _ = load_arrow_head(split="train")
z = transform(x)

Contributing

Initial setup

  • Install Python, e.g. using miniforge
  • Install Rust
  • Install maturin
  • Create and activate Python virtual environment (e.g. conda create -n rocket-rs python=3.11 && conda activate rocket-rs)
  • Run:
maturin develop --extras=dev
pre-commit install --install-hooks
python -m maturin_import_hook site install --args="--release"

Development

  • maturin develop to re-build and install the editable development version (pip install --editable .)
  • maturin build to build the Rust package and Python wheel
  • pytest --benchmark-skip to rebuild automatically using maturin_import_hook and run Python unit tests
  • pytest --benchmark-only to run benchmarks using maturin_import_hook

Todo

  • separate kernel parameter generation from computation
  • compare and test against Python implementation in aeon
  • refactor to pass random generator to functions
  • use debugger
  • benchmark & improve

Notes

About

Rust implementation of ROCKET time-series transform with Python bindings

Topics

Resources

Stars

Watchers

Forks