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 in v0.1.0.post4 (post-release of 0.1.0):

  • Single-label classification (task: classification)
  • Multi-label classification (task: multilabel)

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.9
  • 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.1.0.post4.tar.gz (6.1 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.1.0.post4-py3-none-any.whl (1.8 MB view details)

Uploaded Python 3

File details

Details for the file bnnr-0.1.0.post4.tar.gz.

File metadata

  • Download URL: bnnr-0.1.0.post4.tar.gz
  • Upload date:
  • Size: 6.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for bnnr-0.1.0.post4.tar.gz
Algorithm Hash digest
SHA256 2363fc48a25c9a2d4cfd1891951063ddabae733babb35adbd839b4095ff7311e
MD5 b507a32296f47c4d16961698b98df5d9
BLAKE2b-256 844e99a4a5fa5b9c5fe7b3bac699207a3d474955c65b509a57de6521fc9b780e

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: bnnr-0.1.0.post4-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.7

File hashes

Hashes for bnnr-0.1.0.post4-py3-none-any.whl
Algorithm Hash digest
SHA256 a528e5b6ca175362ae44d746a97f26bbb5cef969b6df39a09fd821f4b7765e0e
MD5 221b541cceb6d92277964de3371b0293
BLAKE2b-256 0f8998ddad44b6d3f53e610f34ed5ab7e3bd66b2319273e3a1c74c60e4409dd7

See more details on using hashes here.

Provenance

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