Skip to main content

BNNR: XAI-driven augmentation & diagnostics for PyTorch vision - find model failures, fix with saliency-guided augmentation (ICD/AICD), prove with auditable reports.

Project description

BNNR Logo

PyPI Python GitHub stars PyPI downloads License CI

Website · LinkedIn

Watch BNNR demo with audio on bnnr.dev

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.6.4): 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_outdocs.


XAI-driven augmentations (ICD & AICD)

BNNR uses saliency maps to guide augmentation — not random flips and crops.

ICD — mask what the model looks at

ICD — masks the regions the model already focuses on (highest saliency), forcing it to learn from context instead of shortcuts.

AICD — mask what the model ignores

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).

CIFAR-10 val 127: original input and OptiCAM — no BNNR vs RandAugment vs BNNR


Live dashboard

Real metrics from a BNNR training run — branch tree, charts, XAI previews, and dataset insights.

Overview Branch Tree Metrics
Dashboard Overview Branch Tree Metrics
Samples & XAI Analysis Dataset Insight
Samples and 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
LinkedIn BNNR on LinkedIn
Documentation docs/README.md
Examples docs/examples.md
Roadmap (Q2–Q3 2026) docs/roadmap.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 --output exported_dashboard

Doc index

Requirements

  • Python >=3.10
  • Core: torch, torchvision, numpy, typer, pydantic, pyyaml, grad-cam
  • Dashboard extra: fastapi, uvicorn, websockets, qrcode

Citation

Full BibTeX: docs/citation.md. GitHub: Cite this repository via CITATION.cff.


License

MIT License — use BNNR freely in research, production, and commercial projects.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bnnr-0.6.4.tar.gz (14.0 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bnnr-0.6.4-py3-none-any.whl (1.9 MB view details)

Uploaded Python 3

File details

Details for the file bnnr-0.6.4.tar.gz.

File metadata

  • Download URL: bnnr-0.6.4.tar.gz
  • Upload date:
  • Size: 14.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for bnnr-0.6.4.tar.gz
Algorithm Hash digest
SHA256 56e9a56fd3a76da04ffafe29272d80a217188e03fee1a7d8fc2be465874d8230
MD5 e7dbbbc2f3e27aa1a763ac692056086b
BLAKE2b-256 07d782c56ba5006eec57213a3b8ac7dfccde5841e575976c5261606c7313034e

See more details on using hashes here.

Provenance

The following attestation bundles were made for bnnr-0.6.4.tar.gz:

Publisher: release-please.yml on bnnr-team/bnnr

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bnnr-0.6.4-py3-none-any.whl.

File metadata

  • Download URL: bnnr-0.6.4-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

Hashes for bnnr-0.6.4-py3-none-any.whl
Algorithm Hash digest
SHA256 3a791b2c24bba7790762bbff424f0916e007b0829edbd535c773bc8f40072300
MD5 0a6ff4d3f5c02b4194f4ddeeb2aea582
BLAKE2b-256 f3b80b0f3d6e10c2e8b0a2ac6b3895e6caf71bebbe7cb5d9e53bffbf5b0a98a1

See more details on using hashes here.

Provenance

The following attestation bundles were made for bnnr-0.6.4-py3-none-any.whl:

Publisher: release-please.yml on bnnr-team/bnnr

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page