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

  • 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/detection.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.8.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.8-py3-none-any.whl (1.8 MB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: bnnr-0.2.8.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.8.tar.gz
Algorithm Hash digest
SHA256 49792fa13e5252974c7e54f930980787f96c565bd57cc79a6d5c19bb451b6388
MD5 bc1ba7af8ebfc921be1cb9da7ca99ca0
BLAKE2b-256 689f9086279617c02d158dc72b5402a38783ad53513a92111585f51c971d5a25

See more details on using hashes here.

Provenance

The following attestation bundles were made for bnnr-0.2.8.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.8-py3-none-any.whl.

File metadata

  • Download URL: bnnr-0.2.8-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.8-py3-none-any.whl
Algorithm Hash digest
SHA256 e413d6f3789adcc8eb7a6f5b0f8ac0fd850812377182971bc688de95c6e4a95c
MD5 6dfb5fd053f54ba4b07d7c4f54ec9b36
BLAKE2b-256 f90a604f9a5a851508ee5a37e7c9775c2f206d7fcb531a81ee77c4e5b875b978

See more details on using hashes here.

Provenance

The following attestation bundles were made for bnnr-0.2.8-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