{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/neural-nilm-deep-neural-networks-applied-to","title":"Neural NILM: Deep Neural Networks Applied to Energy Disaggregation","arxiv_id":"1507.06594","date":"2015-07-23","proceeding":null,"authors":["Jack Kelly","William Knottenbelt"],"abstract":"Energy disaggregation estimates appliance-by-appliance electricity\nconsumption from a single meter that measures the whole home's electricity\ndemand. Recently, deep neural networks have driven remarkable improvements in\nclassification performance in neighbouring machine learning fields such as\nimage classification and automatic speech recognition. In this paper, we adapt\nthree deep neural network architectures to energy disaggregation: 1) a form of\nrecurrent neural network called `long short-term memory' (LSTM); 2) denoising\nautoencoders; and 3) a network which regresses the start time, end time and\naverage power demand of each appliance activation. We use seven metrics to test\nthe performance of these algorithms on real aggregate power data from five\nappliances. Tests are performed against a house not seen during training and\nagainst houses seen during training. We find that all three neural nets achieve\nbetter F1 scores (averaged over all five appliances) than either combinatorial\noptimisation or factorial hidden Markov models and that our neural net\nalgorithms generalise well to an unseen house.","url_abs":"http://arxiv.org/abs/1507.06594v3","url_pdf":"http://arxiv.org/pdf/1507.06594v3.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"neural-nilm-deep-neural-networks-applied-to","repo_url":"https://github.com/JackKelly/neuralnilm_prototype","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"neural-nilm-deep-neural-networks-applied-to","repo_url":"https://github.com/OdysseasKr/online-nilm","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok"}},{"paper_slug":"neural-nilm-deep-neural-networks-applied-to","repo_url":"https://github.com/joseluis1061/neuralnilm","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"neural-nilm-deep-neural-networks-applied-to","repo_url":"https://github.com/pawan47/nilmtk_readings","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok"}}],"tasks":[{"task_slug":"automatic-speech-recognition-2","task_name":"Automatic Speech Recognition"},{"task_slug":"automatic-speech-recognition","task_name":"Automatic Speech Recognition (ASR)"},{"task_slug":"denoising","task_name":"Denoising"},{"task_slug":"classification","task_name":"General Classification"},{"task_slug":"image-classification","task_name":"Image Classification"},{"task_slug":"speech-recognition","task_name":"Speech Recognition"},{"task_slug":"image-classification","task_name":"image-classification"},{"task_slug":"speech-recognition-1","task_name":"speech-recognition"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/1507.06594","atlas_url":"https://app.syntology.ai/?focus=1507.06594","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1507.06594"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/OdysseasKr/online-nilm","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/JackKelly/neuralnilm_prototype","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/joseluis1061/neuralnilm","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/pawan47/nilmtk_readings","reach":{"status":"ok"}}],"summary":{"unverified":17},"by_repo_kind":{"official":{"samples":12,"ran":0,"repositories":1},"listed":{"samples":5,"ran":0,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"0917d7643d29acf7","entry":"across_all_appliances","repo":"JackKelly/neuralnilm_prototype","repo_kind":"official","path":"neuralnilm/metrics.py","file_url":"https://github.com/JackKelly/neuralnilm_prototype/blob/HEAD/neuralnilm/metrics.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"0917d7643d29acf7"}},{"code_sha256_prefix":"420aa2050ebb1f5d","entry":"flatten","repo":"joseluis1061/neuralnilm","repo_kind":"listed","path":"neuralnilm/utils.py","file_url":"https://github.com/joseluis1061/neuralnilm/blob/HEAD/neuralnilm/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"420aa2050ebb1f5d"}},{"code_sha256_prefix":"4888c794edf157be","entry":"get_colors","repo":"JackKelly/neuralnilm_prototype","repo_kind":"official","path":"neuralnilm/plot.py","file_url":"https://github.com/JackKelly/neuralnilm_prototype/blob/HEAD/neuralnilm/plot.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"4888c794edf157be"}},{"code_sha256_prefix":"a4f6cb53d5e3b59b","entry":"gmm_pdf","repo":"JackKelly/neuralnilm_prototype","repo_kind":"official","path":"neuralnilm/plot.py","file_url":"https://github.com/JackKelly/neuralnilm_prototype/blob/HEAD/neuralnilm/plot.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a4f6cb53d5e3b59b"}},{"code_sha256_prefix":"baae6d0b0087030c","entry":"init_experiment","repo":"JackKelly/neuralnilm_prototype","repo_kind":"official","path":"neuralnilm/experiment.py","file_url":"https://github.com/JackKelly/neuralnilm_prototype/blob/HEAD/neuralnilm/experiment.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"baae6d0b0087030c"}},{"code_sha256_prefix":"939a7d5f22a616bf","entry":"none_to_dict","repo":"joseluis1061/neuralnilm","repo_kind":"listed","path":"neuralnilm/utils.py","file_url":"https://github.com/joseluis1061/neuralnilm/blob/HEAD/neuralnilm/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"939a7d5f22a616bf"}},{"code_sha256_prefix":"451649dabb32f0f5","entry":"none_to_list","repo":"JackKelly/neuralnilm_prototype","repo_kind":"official","path":"neuralnilm/source.py","file_url":"https://github.com/JackKelly/neuralnilm_prototype/blob/HEAD/neuralnilm/source.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"451649dabb32f0f5"}},{"code_sha256_prefix":"923e142fb8dee6cf","entry":"none_to_list","repo":"joseluis1061/neuralnilm","repo_kind":"listed","path":"neuralnilm/utils.py","file_url":"https://github.com/joseluis1061/neuralnilm/blob/HEAD/neuralnilm/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"923e142fb8dee6cf"}},{"code_sha256_prefix":"5ca93f198a4b01dd","entry":"plot_disaggregate_start_stop_end","repo":"JackKelly/neuralnilm_prototype","repo_kind":"official","path":"neuralnilm/plot.py","file_url":"https://github.com/JackKelly/neuralnilm_prototype/blob/HEAD/neuralnilm/plot.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"5ca93f198a4b01dd"}},{"code_sha256_prefix":"a4c12d1effb52c55","entry":"quantize","repo":"JackKelly/neuralnilm_prototype","repo_kind":"official","path":"neuralnilm/source.py","file_url":"https://github.com/JackKelly/neuralnilm_prototype/blob/HEAD/neuralnilm/source.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a4c12d1effb52c55"}},{"code_sha256_prefix":"658b9c2b1103edf5","entry":"rectangle_filename","repo":"JackKelly/neuralnilm_prototype","repo_kind":"official","path":"neuralnilm/disaggregate.py","file_url":"https://github.com/JackKelly/neuralnilm_prototype/blob/HEAD/neuralnilm/disaggregate.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"658b9c2b1103edf5"}},{"code_sha256_prefix":"5432382b30150a20","entry":"rectangularise","repo":"JackKelly/neuralnilm_prototype","repo_kind":"official","path":"neuralnilm/rectangulariser.py","file_url":"https://github.com/JackKelly/neuralnilm_prototype/blob/HEAD/neuralnilm/rectangulariser.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"5432382b30150a20"}},{"code_sha256_prefix":"17e0b7c612ec0e93","entry":"relative_error_in_total_energy","repo":"joseluis1061/neuralnilm","repo_kind":"listed","path":"neuralnilm/metrics.py","file_url":"https://github.com/joseluis1061/neuralnilm/blob/HEAD/neuralnilm/metrics.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"17e0b7c612ec0e93"}},{"code_sha256_prefix":"c81045c760ae5c9e","entry":"run_metrics","repo":"JackKelly/neuralnilm_prototype","repo_kind":"official","path":"neuralnilm/metrics.py","file_url":"https://github.com/JackKelly/neuralnilm_prototype/blob/HEAD/neuralnilm/metrics.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c81045c760ae5c9e"}},{"code_sha256_prefix":"7eed19a0c9917f3f","entry":"scores","repo":"joseluis1061/neuralnilm","repo_kind":"listed","path":"neuralnilm/scores.py","file_url":"https://github.com/joseluis1061/neuralnilm/blob/HEAD/neuralnilm/scores.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"7eed19a0c9917f3f"}},{"code_sha256_prefix":"ea8d6dc5401a7fdb","entry":"start_and_end_and_mean","repo":"JackKelly/neuralnilm_prototype","repo_kind":"official","path":"neuralnilm/rectangulariser.py","file_url":"https://github.com/JackKelly/neuralnilm_prototype/blob/HEAD/neuralnilm/rectangulariser.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"ea8d6dc5401a7fdb"}},{"code_sha256_prefix":"d162caef2dd02939","entry":"timestamp_to_int","repo":"JackKelly/neuralnilm_prototype","repo_kind":"official","path":"neuralnilm/source.py","file_url":"https://github.com/JackKelly/neuralnilm_prototype/blob/HEAD/neuralnilm/source.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d162caef2dd02939"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}