This project is looking for a new maintainer. Reach out to Gregor if you're interested!
Tonic is a tool to facilitate the download, manipulation and loading of event-based/spike-based data. It's like PyTorch Vision but for neuromorphic data!
You can find the full documentation on Tonic on this site.
- A first example to get a feeling for how Tonic works.
- Run tutorials in your browser quick and easy.
- List of datasets.
- List of transformations.
- About this project.
- Release notes on version changes.
pip install tonicor (thanks to @Tobias-Fischer)
conda install -c conda-forge tonicFor the latest pre-release on the develop branch that passed the tests:
pip install tonic --preWe recommend using uv for development:
# Install uv
curl -LsSf https://astral.sh/uv/install.sh | sh
# Clone the repository
git clone https://github.com/neuromorphs/tonic.git
cd tonic
# Install dependencies and tonic in editable mode
uv sync --extra dev
# Run tests
uv run pytest test/This package has been tested on:
| Platform | Python Versions | Status | 
|---|---|---|
| Linux | 3.10, 3.11, 3.12 | |
| macOS (ARM64) | 3.10, 3.11, 3.12 | |
| Windows | 3.10, 3.11, 3.12 | 
If you're looking for a minimal example to run, this is it!
import tonic
import tonic.transforms as transforms
sensor_size = tonic.datasets.NMNIST.sensor_size
transform = transforms.Compose(
    [
        transforms.Denoise(filter_time=10000),
        transforms.ToFrame(sensor_size=sensor_size, time_window=3000),
    ]
)
testset = tonic.datasets.NMNIST(save_to="./data", train=False, transform=transform)
from torch.utils.data import DataLoader
testloader = DataLoader(
    testset,
    batch_size=10,
    collate_fn=tonic.collation.PadTensors(batch_first=True),
)
frames, targets = next(iter(testloader))Have a question about how something works? Ideas for improvement? Feature request? Please get in touch on the #tonic Discord channel or alternatively here on GitHub via the Discussions page!
Please check out the contributions page for details.
The development of this library is supported by
If you find this package helpful, please consider citing it:
@software{lenz_gregor_2021_5079802,
  author       = {Lenz, Gregor and
                  Chaney, Kenneth and
                  Shrestha, Sumit Bam and
                  Oubari, Omar and
                  Picaud, Serge and
                  Zarrella, Guido},
  title        = {Tonic: event-based datasets and transformations.},
  month        = jul,
  year         = 2021,
  note         = {{Documentation available under https://tonic.readthedocs.io}},
  publisher    = {Zenodo},
  version      = {0.4.0},
  doi          = {10.5281/zenodo.5079802},
  url          = {https://doi.org/10.5281/zenodo.5079802}
}