BNNR — Train → Explain → Improve → Prove
Project description
Full demo with audio (4K): bnnr.dev
BNNR (Bulletproof Neural Network Recipe)
Train → Explain → Improve → Prove
BNNR automatically improves your PyTorch vision models using XAI — find what your model gets wrong, fix it with intelligent augmentation, and prove the result with structured reports and a live dashboard.
Supported tasks (v0.4.10): single-label classification, multi-label classification, and object detection (COCO-mini / YOLO). See Documentation.
Sample analyze report (no install): live HTML preview
Quickstart
pip install "bnnr[dashboard]"
# Zero flags — CIFAR-10 demo CNN, ICD preset, live dashboard (~1 min)
python3 -m bnnr demo
python3 -m bnnr quickstart
python3 -m bnnr train --dataset cifar10 --preset light --with-dashboard
Open http://127.0.0.1:8080/ for the live dashboard.
Already have a checkpoint? python3 -m bnnr analyze --model checkpoints/best.pt --data cifar10 --output ./analysis_out — docs.
XAI-driven augmentations (ICD & AICD)
BNNR uses saliency maps to guide augmentation — not random flips and crops.
ICD — masks the regions the model already focuses on (highest saliency), forcing it to learn from context instead of shortcuts.
AICD — masks low-saliency background and irrelevant textures, sharpening focus on discriminative features.
Benchmarks
| Dataset | Without BNNR | BNNR branch search | RandAugment |
|---|---|---|---|
| CIFAR-10 | 75.3% | 81.4% | 72.5% |
Median val accuracy, 3 seeds, demo CNN (methodology).
Live dashboard
Real metrics from a BNNR training run — branch tree, charts, XAI previews, and dataset insights.
| Overview | Branch Tree | Metrics |
|---|---|---|
| Samples & XAI | Analysis | Dataset Insight |
|---|---|---|
What makes BNNR different
- XAI-driven augmentation (ICD / AICD) — augmentations guided by saliency maps; no other PyTorch toolkit combines explainability and data augmentation this way.
- Auto-augmentation search — iterative branching keeps only augmentations that measurably improve your validation metric.
- Auditable reports — structured JSON reports with metrics, XAI heatmaps, and branch decisions for stakeholders or compliance review.
Links
| Resource | URL |
|---|---|
| Website | bnnr.dev |
| BNNR on LinkedIn | |
| Documentation | docs/README.md |
| Examples | docs/examples.md |
| Colab (classification) | Open in Colab |
| API reference | docs/api_reference.md |
Model analysis (bnnr analyze) |
docs/analyze.md |
| Integrations (Grad-CAM, Ultralytics YOLO) | docs/integrations.md |
| Sample analyze report (live HTML) | raw.githack.com preview |
| GitHub Discussions | Q&A and showcase |
Python API
import bnnr
result = bnnr.quick_run(model, train_loader, val_loader)
print(result.best_metrics)
Advanced: Golden path and API reference.
Documentation
Install from source, CLI reference, full doc index
Install from source
git clone https://github.com/bnnr-team/bnnr.git
cd bnnr
(cd dashboard_web && npm ci && npm run build)
pip install -e ".[dev,dashboard]"
The PyPI wheel ships the bnnr package only. Runnable scripts (examples/), notebooks, and the documentation tree (docs/) live in this repository.
Main CLI commands
python3 -m bnnr --help
python3 -m bnnr train --help
python3 -m bnnr analyze --help
python3 -m bnnr report --help
python3 -m bnnr list-datasets
python3 -m bnnr list-augmentations -v
python3 -m bnnr list-presets
python3 -m bnnr dashboard serve --run-dir reports --port 8080
python3 -m bnnr dashboard export --run-dir reports/run_YYYYMMDD_HHMMSS --out exported_dashboard
Doc index
- Getting started
- Configuration
- CLI
- Dashboard
- Augmentations
- Detection
- Analyze (standalone diagnostics)
- Examples
- Notebooks
- Artifacts
- Troubleshooting
Requirements
- Python
>=3.10 - Core:
torch,torchvision,numpy,typer,pydantic,pyyaml,grad-cam - Dashboard extra:
fastapi,uvicorn,websockets,qrcode
License
MIT License — use BNNR freely in research, production, and commercial projects.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file bnnr-0.4.10.tar.gz.
File metadata
- Download URL: bnnr-0.4.10.tar.gz
- Upload date:
- Size: 12.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
808d5d1eb3b7d33a12f79120ba74381901d75e67f3cf0e56475a8c0314beafcb
|
|
| MD5 |
e523e52cd9aaaffa585827226fa82bfb
|
|
| BLAKE2b-256 |
e4730b2bb7d99f3476f8d43c6a7a07d08401e5bdcfcc50086a22f4e75ee4b9ea
|
Provenance
The following attestation bundles were made for bnnr-0.4.10.tar.gz:
Publisher:
ci.yml on bnnr-team/bnnr
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
bnnr-0.4.10.tar.gz -
Subject digest:
808d5d1eb3b7d33a12f79120ba74381901d75e67f3cf0e56475a8c0314beafcb - Sigstore transparency entry: 1670351598
- Sigstore integration time:
-
Permalink:
bnnr-team/bnnr@78d404c216eadd08d92881dde7370ca3df0bcbd4 -
Branch / Tag:
refs/tags/v0.4.10 - Owner: https://github.com/bnnr-team
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@78d404c216eadd08d92881dde7370ca3df0bcbd4 -
Trigger Event:
push
-
Statement type:
File details
Details for the file bnnr-0.4.10-py3-none-any.whl.
File metadata
- Download URL: bnnr-0.4.10-py3-none-any.whl
- Upload date:
- Size: 1.9 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
60a03f9b06a59332d46dd4e9de0acca13891b510304f32ff68cc627ed383d3a6
|
|
| MD5 |
9ef24df103e81fe881ecdced0e510b62
|
|
| BLAKE2b-256 |
d11e51e7e420f9a237210320879338f5cacf0fb5f27a51edd5a5fed256926638
|
Provenance
The following attestation bundles were made for bnnr-0.4.10-py3-none-any.whl:
Publisher:
ci.yml on bnnr-team/bnnr
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
bnnr-0.4.10-py3-none-any.whl -
Subject digest:
60a03f9b06a59332d46dd4e9de0acca13891b510304f32ff68cc627ed383d3a6 - Sigstore transparency entry: 1670351688
- Sigstore integration time:
-
Permalink:
bnnr-team/bnnr@78d404c216eadd08d92881dde7370ca3df0bcbd4 -
Branch / Tag:
refs/tags/v0.4.10 - Owner: https://github.com/bnnr-team
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@78d404c216eadd08d92881dde7370ca3df0bcbd4 -
Trigger Event:
push
-
Statement type: