{"id":13586156,"url":"https://github.com/nilmtk/nilmtk-contrib","last_synced_at":"2025-08-21T06:31:23.905Z","repository":{"id":45942954,"uuid":"190982189","full_name":"nilmtk/nilmtk-contrib","owner":"nilmtk","description":null,"archived":false,"fork":false,"pushed_at":"2021-11-25T20:37:17.000Z","size":87588,"stargazers_count":115,"open_issues_count":39,"forks_count":58,"subscribers_count":10,"default_branch":"master","last_synced_at":"2024-06-11T17:54:14.250Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nilmtk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-06-09T08:30:01.000Z","updated_at":"2024-05-27T07:25:47.000Z","dependencies_parsed_at":"2022-08-12T12:40:21.805Z","dependency_job_id":null,"html_url":"https://github.com/nilmtk/nilmtk-contrib","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nilmtk%2Fnilmtk-contrib","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nilmtk%2Fnilmtk-contrib/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nilmtk%2Fnilmtk-contrib/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nilmtk%2Fnilmtk-contrib/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nilmtk","download_url":"https://codeload.github.com/nilmtk/nilmtk-contrib/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230494921,"owners_count":18235046,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T15:05:21.601Z","updated_at":"2025-08-21T06:31:23.880Z","avatar_url":"https://github.com/nilmtk.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# NILMTK-Contrib\n\n(Note - This package only works on Python versions \u003c= 3.11)\n\nThis repository contains all the state-of-the-art algorithms for the task of energy disaggregation implemented using NILMTK's Rapid Experimentation API. You can find the paper [here](https://doi.org/10.1145/3360322.3360844). All the notebooks that were used to can be found [here](https://github.com/nilmtk/buildsys2019-paper-notebooks).\n\nUsing the NILMTK-contrib you can use the following algorithms:\n - Additive Factorial Hidden Markov Model\n - Additive Factorial Hidden Markov Model with Signal Aggregate Constraints\n - Discriminative Sparse Coding\n - RNN\n - Denoising Auto Encoder\n - Seq2Point\n - Seq2Seq\n - WindowGRU\n\nThe above state-of-the-art algorithms have been added to this repository. \n\nYou can do the following using the new NILMTK's Rapid Experimentation API:\n - Training and Testing across multiple appliances\n - Training and Testing across multiple datasets (Transfer learning)\n - Training and Testing across multiple buildings\n - Training and Testing with Artificial aggregate\n - Training and Testing with different sampling frequencies\n \nRefer to this [notebook](https://github.com/nilmtk/nilmtk-contrib/blob/master/sample_notebooks/NILMTK%20API%20Tutorial.ipynb) to know more about the usage of the API.\n\n## Citation\n\n\nIf you find this repo useful for your research, please consider citing our paper:\n\n```bibtex\n@inproceedings{10.1145/3360322.3360844,\nauthor = {Batra, Nipun and Kukunuri, Rithwik and Pandey, Ayush and Malakar, Raktim and Kumar, Rajat and Krystalakos, Odysseas and Zhong, Mingjun and Meira, Paulo and Parson, Oliver},\ntitle = {Towards Reproducible State-of-the-Art Energy Disaggregation},\nyear = {2019},\nisbn = {9781450370059},\npublisher = {Association for Computing Machinery},\naddress = {New York, NY, USA},\nurl = {https://doi.org/10.1145/3360322.3360844},\ndoi = {10.1145/3360322.3360844},\nbooktitle = {Proceedings of the 6th ACM International Conference on Systems for Energy-Efficient Buildings, Cities, and Transportation},\npages = {193–202},\nnumpages = {10},\nkeywords = {smart meters, energy disaggregation, non-intrusive load monitoring},\nlocation = {New York, NY, USA},\nseries = {BuildSys '19}\n}\n}\n\n```\nFor any enquiries, please contact the main authors.\n\n## Installation Details\n\n## UV Support\nThis Python package uses uv for installation. uv is a fast and modern Python package manager that replaces tools like pip and virtualenv, with support for pyproject.toml and ultra-fast dependency resolution. \n\nTo install nilmtk_contrib, first install [uv](https://docs.astral.sh/uv/getting-started/installation/) and then run:\u003cbr\u003e\n```\nuv pip install git+https://github.com/nilmtk/nilmtk-contrib.git\n```\n\n## Docker Support\nDocker is an open-source platform for developing, shipping, and running applications in lightweight, portable containers that bundle code, runtime, libraries, and system tools into a single package. It ensures everyone runs the same environment, regardless of host OS, and keeps nilmtk-contrib’s dependencies contained without polluting the system Python.\n\n\nBuild and run locally\n```\ndocker build -t nilmtk-contrib .\ndocker run --rm -it nilmtk-contrib bash\n```\nPull the pre-built image\n```\ndocker pull ghcr.io/enfuego27826/nilmtk-contrib:latest\ndocker run --rm -it ghcr.io/enfuego27826/nilmtk-contrib:latest bash\n```\n\nRefer to this [notebook](https://github.com/nilmtk/nilmtk-contrib/tree/master/sample_notebooks) for using the nilmtk-contrib algorithms, using the new NILMTK-API.\n\n## Dependencies\n\n- NILMTK\u003e=0.4\n- scikit-learn\u003e=0.21 (already required by NILMTK)\n- Tensorflow \u003e= 2.12.0 \u003c 2.16.0 \n- cvxpy\u003e=1.0.0\n\n**Note: For faster computation of neural networks, it is suggested that you install keras-gpu, since it can take advantage of GPUs. The algorithms AFHMM, AFHMM_SAC and DSC are CPU intensive, use a system with good CPU for these algorithms.**\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnilmtk%2Fnilmtk-contrib","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnilmtk%2Fnilmtk-contrib","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnilmtk%2Fnilmtk-contrib/lists"}