Skip to main content

BNNR — Train → Explain → Improve → Prove

Project description

BNNR Logo

PyPI Python License CI

BNNR (Bulletproof Neural Network Recipe)

BNNR is a PyTorch toolkit that makes vision models production-ready through a closed loop: train a model, explain its decisions with XAI, improve it with intelligent augmentation, and prove the result with structured reports and a live dashboard.

Supported tasks (v0.2.0):

  • Single-label classification (task: classification)
  • Multi-label classification (task: multilabel)
  • Object detection (task: detection) — COCO-mini / YOLO pipelines; see examples/detection/

Quickstart

1) Install

pip install bnnr

With optional extras:

pip install "bnnr[dashboard]"       # live dashboard (React + FastAPI)
pip install "bnnr[gpu]"             # GPU-accelerated augmentations (Kornia)
pip install "bnnr[albumentations]"  # Albumentations integration

For development from source:

git clone https://github.com/bnnr-team/bnnr.git
cd bnnr
# Dashboard UI must exist before editable install (hatch force-include).
(cd dashboard_web && npm ci && npm run build)
pip install -e ".[dev,dashboard]"

Examples, notebooks, and markdown docs

The PyPI wheel ships the bnnr package only. Runnable scripts (examples/), notebooks, and the documentation tree (docs/) live in the GitHub repository. After cloning, follow docs/examples.md (for example PYTHONPATH=src python3 examples/... from the repo root).

2) Create a minimal config

cat > /tmp/bnnr_quickstart.yaml <<'YAML'
m_epochs: 1
max_iterations: 1
metrics: [accuracy, f1_macro, loss]
selection_metric: accuracy
selection_mode: max
checkpoint_dir: checkpoints_quickstart
report_dir: reports_quickstart
xai_enabled: false
device: auto
seed: 42
candidate_pruning_enabled: false
YAML

3) Run a short training with live dashboard

python3 -m bnnr train \
  --config /tmp/bnnr_quickstart.yaml \
  --dataset cifar10 \
  --max-train-samples 128 \
  --max-val-samples 64 \
  --preset light \
  --with-dashboard \
  --dashboard-port 8080

Expected terminal markers:

  • BNNR PIPELINE SUMMARY
  • BASELINE TRAINING
  • TRAINING COMPLETE
  • Report JSON : reports_quickstart/run_.../report.json
  • Dashboard : http://127.0.0.1:8080/

After training, keep the process running and open dashboard:

  • desktop: http://127.0.0.1:8080/
  • mobile: scan QR code printed in terminal (same Wi-Fi)

Stop dashboard with Ctrl+C when done.

4) Inspect the report

RUN_DIR=$(ls -1dt reports_quickstart/run_* | head -n 1)
python3 -m bnnr report "$RUN_DIR/report.json" --format summary

If you prefer one-shot (no live dashboard), run the same command with --without-dashboard.

Main CLI commands

python3 -m bnnr --help
python3 -m bnnr train --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

Python API entry points

For custom models and dataloaders:

  • BNNRConfig
  • BNNRTrainer
  • SimpleTorchAdapter
  • quick_run()

See docs/api_reference.md and docs/golden_path.md.

Repository docs

  • docs/README.md (documentation index and source of truth)
  • docs/getting_started.md
  • docs/dashboard.md
  • docs/configuration.md
  • docs/cli.md
  • docs/api_reference.md
  • docs/golden_path.md
  • docs/augmentations.md
  • docs/examples.md
  • docs/notebooks.md
  • docs/artifacts.md
  • docs/troubleshooting.md

Requirements

From pyproject.toml:

  • Python >=3.10
  • Core dependencies include torch, torchvision, numpy, typer, pydantic, pyyaml
  • Dashboard extra adds fastapi, uvicorn, websockets, qrcode

License

MIT — free and open source, forever. BNNR is an academic and community-driven project built for learning, research, and fun. No paid tiers, no commercial offerings — just open-source tools for the CV community.

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.2.1.tar.gz (6.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.2.1-py3-none-any.whl (1.8 MB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: bnnr-0.2.1.tar.gz
  • Upload date:
  • Size: 6.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.2.1.tar.gz
Algorithm Hash digest
SHA256 89c296d08421a6d377538ed9947d34387d546038f645f6c1398621d94174281a
MD5 965f87782528c5ce16fc0079d4faff8e
BLAKE2b-256 eb3916e3c9a24ba73ba7d24302ff321ed76a635f635607797de097af06014144

See more details on using hashes here.

Provenance

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

Publisher: ci.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.2.1-py3-none-any.whl.

File metadata

  • Download URL: bnnr-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 1.8 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.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 782ef3df18e11b93d7e52df12c10d3a1d42fd37c0034c7cdd78fb079ad9178a4
MD5 e72ba14915a40c7e47c9c07f0ec8ec75
BLAKE2b-256 c37da3ff4989b8fb15ea1b76f976203dda7304df67f9cd7bbb85776636dd20d2

See more details on using hashes here.

Provenance

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

Publisher: ci.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