PySHRED
PySHRED is a deep-learning library for reconstructing and forecasting high-dimensional spatiotemporal systems from sparse sensor data.
Built on the SHallow REcurrent Decoder (SHRED) architecture, PySHRED provides a seamless pipeline from raw sensor measurements to high-fidelity reconstructions and long-horizon forecasts.
SHRED in a Nutshell
| Component | Role | Models |
|---|---|---|
| Sequence model | Encodes temporal sensor measurements into a low-dimensional latent state. | LSTM, GRU, Transformer |
| Decoder model | Reconstructs the full high-dimensional state from the latent state. | MLP, U-Net |
| Latent forecaster | Propagates latent dynamics forward in time for long-horizon prediction. | LSTM, SINDy |
The sequence + decoder pair reconstructs the full high-dimensional state space from sparse sensors, while the forecaster + decoder pair enables multi-step forecasting with no additional sensor measurements.
PySHRED is a powerful tool for:
- System identification
- Reduced-order modeling
- Long-horizon forecasting
- Latent dynamics discovery
- Parametric systems analysis
- Control and decision-making
PySHRED offers a high-level interface and a simple three-step pipeline, making it easy for anyone to get started.
Documentation
Online documentation: pyshred-dev.github.io/pyshred/stable
The docs include:
Installation
-
Installing from PyPI
The latest stable release (and required dependencies) can be installed from PyPI:
pip install pyshred -
Installing from source
PySHRED can be installed via source code on GitHub.
git clone https://github.com/pyshred-dev/pyshred.git cd pyshred pip install .
Citing
If you use this code for your work, please cite
@misc{pyshred,
title={PySHRED: A Python package for SHallow REcurrent Decoding for sparse sensing, model reduction and scientific discovery},
author={David Ye and Jan Williams and Mars Gao and Stefano Riva and Matteo Tomasetto and David Zoro and J. Nathan Kutz},
year={2025},
eprint={2507.20954},
archivePrefix={arXiv},
primaryClass={cs.LG},
url={https://arxiv.org/abs/2507.20954},
}
Resources
- Docs: https://pyshred-dev.github.io/pyshred/stable
- Issue Tracking: https://github.com/pyshred-dev/pyshred/issues
- Source code: https://github.com/pyshred-dev/pyshred
Contributors and Developers
|
Nathan Kutz |
Jan Williams |
David Ye |
Mars Gao |
Matteo Tomasetto |
Stefano Riva |
References
-
Williams, J. P., Zahn, O., & Kutz, J. N. (2024).
Sensing with shallow recurrent decoder networks.
Proceedings of the Royal Society A: Mathematical, Physical and Engineering Sciences, 480(2298), 20240054. -
Gao, M. L., Williams, J. P., & Kutz, J. N. (2025).
Sparse identification of nonlinear dynamics and Koopman operators with Shallow Recurrent Decoder Networks.
arXiv preprint, arXiv:2501.13329. -
Tomasetto, M., Williams, J. P., Braghin, F., Manzoni, A., & Kutz, J. N. (2025).
Reduced Order Modeling with Shallow Recurrent Decoder Networks.
arXiv preprint, arXiv:2502.10930. -
Kutz, J. N., Reza, M., Faraji, F., & Knoll, A. (2024).
Shallow Recurrent Decoder for Reduced Order Modeling of Plasma Dynamics.
arXiv preprint, arXiv:2405.11955. -
Ebers, M. R., Williams, J. P., Steele, K. M., & Kutz, J. N. (2024).
Leveraging arbitrary mobile sensor trajectories with Shallow Recurrent Decoder Networks for full-state reconstruction.
IEEE Access, 12, 97428–97439.
Release files for pyshred 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pyshred-1.1.0.tar.gz | 38.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pyshred-1.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 86.7 kB
Release files / pyshred-1.1.0.tar.gz
| Download URL | pyshred-1.1.0.tar.gz |
|---|---|
| Size | 38.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fb0b4f30ee1b9ff6ae15f27e665154bff97e8d678497a575fca0fc73fc77dec3
|
|
BLAKE2b-256 checksum How to use checksums |
e8cf80e8ba261535d8a148e0c3b2f1829835da7b7fffe494138b433d1a64f231
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.8.20
|
Release files / pyshred-1.1.0-py3-none-any.whl
| Download URL | pyshred-1.1.0-py3-none-any.whl |
|---|---|
| Size | 47.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ad1006c3d2d7230c131f6b223447904ea9c6c66b2e66015a2b99c5c9174ed66c
|
|
BLAKE2b-256 checksum How to use checksums |
cbc89e33db6581f91771d15d6fc46876493621be8baa95c0d84b8513cba03b63
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.8.20
|