Effective Cross-Building Transfer Learning for HVAC control using Deep Reinforcement Learning and Joint Action Dynamics
Link to research - https://www.sciencedirect.com/science/article/pii/S0045790626002892
This repository runs in a Docker container configured by Sinergym.
Follow the instructions on how to install Sinergym via Docker and then follow the steps below.
In a conda or virtual environment, run the following code.
https://github.com/kad99kev/ECTRL-JAD.git
pip install -e .
Once the Docker container is built, there are different options available:
- controller - Will run an experiment using a rule-based controller agent.
- pretrain - Will train an agent with imitation learning.
- scratch - Will train a Deep RL agent from scratch (no fine-tuning).
- finetune - Will finetune a Deep RL agent using pre-trained weights.
- test - Will test any agent (trained via imitate, scratch or finetune).
The commands can be run as follows:
ectrl_jad scratch --algo ppo --run_name scratch_experiment --experiment scratch_experiment -env Eplus-5zone-hot-continuous-stochastic-v1 -c config.yaml -s 0
Run ectrl_jad --help for more information.
Example run scripts are given in run.sh.
Example configuration file is given in config.yaml.
To generate the dataset used for pre-training, run the data_collector.ipynb Jupyter Notebook. This will generate .csv files that can then be used for pre-training.