• Stars
    star
    151
  • Rank 244,546 (Top 5 %)
  • Language
    Python
  • License
    Apache License 2.0
  • Created about 9 years ago
  • Updated over 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Deep Neural Networks Applied to Energy Disaggregation

neuralnilm

Deep Neural Networks Applied to Energy Disaggregation

Please note that this code was never finished! It is incomplete and unsupported! Please do not use unless you really, really know what you are doing! Please see my Neural NILM prototype code to see exactly what I implemented in my Neural NILM paper! Your best bet if you want to re-implement Neural NILM would probably be start from scratch using a modern framework like TensorFlow, and perhaps use nilmtk to help load the datasets.

This is a complete re-write of the Neural NILM Prototype.

Getting started

Here is a short iPython notebook to show how to load activations from UKDALE.

Please also note that my neuralnilm code is only provided as a proof of concept and as a reference. It isn't yet in a state where it's easy for other people to run the code. Unfortunately I won't have time to work on the Neural NILM code or to provide support anytime in the forseable future. So the code is provided 'as is' without any support at the moment. Maybe one day I'll have time to support the code or to update the code.

That said, if you're really determined to read and understand this code then here's a quite description of the basic architecture:

Each 'experiment' is defined in a Python script in experiment_definitions/. Each of these files must have a run function which, well, runs the experiment!

experiment_definitions/ also should include a text file called job_list.txt which is just a list of experiment names like e575. The script scripts/run_experiments.py looks at job_list.txt to find the next job to run. After each job completes, run_experiments.py removes that job from the job_list. In this way, it is possible to add, remove or re-order jobs from the job_list while an experiment is running.

The re-usable code which makes up the bulk of the NeuralNILM package lives in neuralnilm/neuralnilm. net.py includes a Net class which handles the construction of each neural network. trainer.py includes a Trainer class which trains each net and sends metrics to the Mongo database.

neuralnilm/neuralnilm/data includes the mechanisms for loading and transforming data. This is designed to be very modular so you can easily mix and match data sources, pre-processing steps and networks. For a quick overview of how this all works, take a look at some of the python files in the experiment_definitions directory.

neuralnilm/neuralnilm/monitor contains the mechanisms for loading metrics and metadata from the Mongo database and plotting it.

Requirements

See requirements.txt for the required Python packages. Also requires Mongo DB.

Configuration

You need to create a ~/.neuralnilm text file to specify some parameters. Please see example_config_file.

MongoDB remote access

See http://www.mkyong.com/mongodb/mongodb-allow-remote-access/

More Repositories

1

climate-change-mitigation

Using computer science to mitigate climate change: lists of topics, conferences, etc.
91
star
2

light-speed-io

Read & decompress many chunks of files at high speed
Rust
56
star
3

neuralnilm_prototype

Jupyter Notebook
50
star
4

bayesianchangepoint

An implementation of Adams & MacKay 2007 "Bayesian Online Changepoint Detection"
Python
31
star
5

rfm_edf_ecomanager

Communicate with EDF EcoManager Transmitter Plugs; Whole House TX and CurrentCost Whole House TX using a 433MHz RFM12b and a ATmega328 micro controller
C++
30
star
6

rfm_ecomanager_logger

Python front-end for the rfm_edf_ecomanager RF base unit
Python
13
star
7

UK-DALE_metadata

Metadata for my UK Domestic Appliance-Level Electricity (UK-DALE) dataset
Python
11
star
8

ukdale_plots

Plots (using NILMTK) for my UK-DALE dataset paper
Python
9
star
9

snd_card_power_meter

An electricity meter using a sound card to digitise signals from current transformer probes and AC-AC adapters.
Python
9
star
10

linux_home

Config files in my Linux home directory
Emacs Lisp
8
star
11

BuildSys_2015_NeuralNILM

Presentation of Neural NILM for BuildSys 2015 conference in November 2015
HTML
7
star
12

hypergrib

Lazily read petabytes of GRIBs from cloud object storage.
Rust
7
star
13

reference-library

My academic reference library in BibLaTeX format
TeX
6
star
14

currentCostCosmTX

Simple script to send data from a Current Cost to Cosm
Python
4
star
15

domesticPowerData

Electricity power consumption data recorded from two domestic houses
4
star
16

rfm_current_cost

An attempt to build a DIY receiver for Current Cost transmitters
C++
4
star
17

PGM

Helper functions for free online Stanford Probabilistic Graphical Modelling course
MATLAB
4
star
18

cosmSender

Python class to send data to Cosm. Caches data to minimise API requests and to protect against network errors.
Python
4
star
19

slicedpy

SlicedPy: Estimate the energy consumed by individual appliances from whole-house power meter readings.
C
3
star
20

JackKelly.github.io

My new blog; using Jekyll.
HTML
3
star
21

iam_logger

Current Cost Individual Appliance Monitor (IAM) logger. Handles multiple current cost monitors using multiple threads.
Python
3
star
22

LaTeX

LaTeX bits and bobs
2
star
23

StressAndLog

Stress a Linux machine whilst logging utilisation and power consumption using a WattsUp meter
C++
2
star
24

pda

Power Data Analysis: finding correlations and patterns in domestic electricity data
C++
2
star
25

babysitter

Monitor disk space, multiple files and multiple processes. If errors are found then an email is sent and corrective action may be taken.
Python
1
star
26

powerstats

Produce simple stats for REDD-formatted electricity power consumption log files
Python
1
star
27

owfsCosmTX

Transmit readings from a 1-wire network to Pachube
Python
1
star
28

EFL_talk

To view this presentation in your browser, go to:
HTML
1
star
29

ukdale_utils

Utilities for UK-DALE dataset
Python
1
star
30

migration-from-drupal-to-jekyll

Move blog from Drupal 7 to Jekyll
Python
1
star
31

neuralnilm_plots

Generating figures for illustrating Neural NILM
1
star
32

CurrentCostLogger

A simple Perl script for logging data from the Current Cost EnviR
Perl
1
star
33

UCL_effectiveness_of_disag_talk

Slides for my talk on "Do disaggregated electricity bills really help people to save energy?"
HTML
1
star
34

mechanic

My Eclipse (with PyDev & Aptana) settings (as saved by Workspace Mechanic)
1
star
35

Sustainable-OSM-maps

Tools to create pretty maps of sustainable living features from OpenStreetMap
Python
1
star
36

NILM_Workshop_talk_2016

Slides for my talk on "Does disaggregated electricity feedback reduce domestic electricity consumption? A systematic review of the literature"
HTML
1
star