Reproduction code for the CBCTQ 2026 paper by João Victor Souza, Pablo Gustavo Cogo Pochmann and Anderson F. P. dos Santos (Instituto Militar de Engenharia).
Recent work (Das et al., arXiv:2512.18612) isolated the contribution of a Quantum Reservoir Computing (QRC) step by comparing a hybrid quantum–classical image denoiser against a classical baseline on MNIST, reporting improved sharpness. This repository applies the same ablation methodology to EuroSAT: PCA(18) features of noisy 64×64 satellite images are fed either directly to an MLP denoiser (baseline) or through a simulated 18-qubit Rydberg-atom reservoir first (hybrid). Statistical analysis over four noise levels reveals a small but significant advantage for the classical baseline, with both pipelines equally limited by the dimensionality bottleneck inherent to QRC simulation.
| Path | Content |
|---|---|
01_pipeline.ipynb |
§II Methodology — data, noise, PCA, reservoir, MLP training, per-image metrics. Run once per σ. |
02_analysis.ipynb |
§III Results + §IV Discussion — every figure, table, p-value and number stated in the paper (and a few that back the prose). Runs in minutes from results/. |
src/plots.py |
All plotting code (kept out of the notebooks). |
train_readout.py |
Standalone MLP trainer, invoked as a subprocess by 01_pipeline.ipynb so GPU memory is fully released between the two models (needed on a 4 GB GPU). Also the single source of the MLP architecture. |
download_artifacts.py |
Fetches the 8 trained models (~900 MB each) and the cached reservoir embeddings for every split and σ from the GitHub Release (~9.6 GB of assets in total; the per-image metric arrays are also attached to the release but not downloaded, since they are committed in results/). |
results/ |
Committed per-image metric arrays (.npz, one per σ) and embedding scalers — enough to reproduce the entire analysis without a GPU. |
figures/ |
Paper figures as generated by 02_analysis.ipynb. |
Requires Python 3.10–3.13 — the pinned TensorFlow version currently has no matching distributions for 3.14+.
Create and activate a virtual environment, for example with venv:
python3.13 -m venv .venv && source .venv/bin/activateThen install the pinned dependencies:
pip install -r requirements.txtDeveloped with Python 3.13 on Linux, GPU: NVIDIA RTX 3050 (4 GB).
The per-image metric arrays for all four noise levels are committed in results/, so the
statistical analysis and both paper figures reproduce directly:
jupyter notebook 02_analysis.ipynb # run all cellsFetch the trained models and cached reservoir embeddings from the GitHub Release (~9.6 GB). These are the models and embeddings used to produce the numbers and figures in the paper:
python download_artifacts.pyWith those in models/ and the embedding scalers committed in results/, running
01_pipeline.ipynb skips training and reservoir simulation entirely: it downloads
EuroSAT, rebuilds the deterministic splits/noise/PCA (seeded), evaluates both models on
the test set and regenerates the per-image metric arrays:
for s in 0.1 0.3 0.5 0.7; do
QRC_SIGMA=$s jupyter nbconvert --to notebook --execute --inplace 01_pipeline.ipynb
doneSame command as above, without downloading anything first. Per σ: EuroSAT download is
automatic (~90 MB from Zenodo); reservoir embeddings take ≈ 4 h on an RTX 3050 (cached
to models/). Every stage is cached — rerunning skips whatever
already exists, so the three modes are just different starting points of the same
notebook.
@inproceedings{souza2026qrc,
title = {An Ablation Study of Quantum Reservoir Computing for Satellite Image Denoising},
author = {Souza, Jo{\~a}o Victor and Pochmann, Pablo Gustavo Cogo and dos Santos, Anderson F. P.},
booktitle = {Congresso Brasileiro de Ci{\^e}ncias e Tecnologias Qu{\^a}nticas (CBCTQ)},
year = {2026}
}Supported by the National Institute of Science and Technology for Applied Quantum Computing, CNPq process No. 408884/2024-0.