| license: mit | |
| tags: | |
| - nilm | |
| - energy-disaggregation | |
| - uk-dale | |
| - pytorch | |
| library_name: nilmbench | |
| datasets: | |
| - Pybunny/nilmbench-ukdale | |
| language: | |
| - en | |
| # FaustineCNN — NILMbench baseline | |
| FaustineCNN trained on UK-DALE House 1 (sparse 6-second 16 kHz V/I frames) and | |
| evaluated on the dense House 2 set of 60,000 frames. This is the best-scoring | |
| baseline from the NILMbench paper (`MJ_{20W} = 0.504` raw, | |
| `0.559` with the recall-constrained cutoffs in `cutoffs.json`). | |
| ## Files | |
| | File | Purpose | | |
| | ----------------- | -------------------------------------------------------------------- | | |
| | `faustine_best.pt`| PyTorch state-dict, loadable with `nilmbench.models.FaustineCNN`. | | |
| | `cutoffs.json` | Recall-constrained per-class cutoffs `c_k` (calibrated on House 1). | | |
| | `classes.json` | Ordered category names (length 7). | | |
| ## Quick start | |
| ```python | |
| import torch, json | |
| from huggingface_hub import hf_hub_download | |
| from nilmbench.models import FaustineCNN | |
| ckpt = hf_hub_download("Pybunny/nilmbench-faustine", "faustine_best.pt") | |
| classes = json.load(open(hf_hub_download("Pybunny/nilmbench-faustine", "classes.json"))) | |
| model = FaustineCNN(n_categories=len(classes)) | |
| model.load_state_dict(torch.load(ckpt, map_location="cpu")) | |
| model.eval() | |
| ``` | |
| ## Citation | |
| NILMbench paper (2026). See https://github.com/Saharmgh/NILMbench for the | |
| full code and reproducible-figure scripts. | |
| ## License | |
| MIT. | |