-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #80 from rdnfn/dev/general
v0.5.0
- Loading branch information
Showing
49 changed files
with
951 additions
and
357 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -119,6 +119,5 @@ docs/generated/ | |
#beobench | ||
beobench_results* | ||
notebooks/archive | ||
*beo.yaml | ||
*beo.yml | ||
.beobench.yml | ||
perf_tests* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
# This CITATION.cff file was generated with cffinit. | ||
# Visit https://bit.ly/cffinit to generate yours today! | ||
|
||
cff-version: 1.2.0 | ||
title: >- | ||
Beobench: A Toolkit for Unified Access to Building | ||
Simulations for Reinforcement Learning | ||
message: >- | ||
If you use this software, please cite it using the | ||
metadata from this file. | ||
type: software | ||
version: 0.5.0 | ||
url: https://github.com/rdnfn/beobench | ||
authors: | ||
- given-names: Arduin | ||
family-names: Findeis | ||
- given-names: Fiodar | ||
family-names: Kazhamiaka | ||
- given-names: Scott | ||
family-names: Jeen | ||
- given-names: Srinivasan | ||
family-names: Keshav |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,5 @@ | ||
A toolbox for benchmarking reinforcement learning (RL) algorithms on building energy optimisation (BEO) problems. Beobench tries to make working on RL for BEO easier: it provides simple access to existing libraries defining BEO problems (such as `BOPTEST <https://github.com/ibpsa/project1-boptest>`_) and provides a large set of pre-configured RL algorithms. Beobench is *not* a gym library itself - instead it leverages the brilliant work done by many existing gym-type projects and makes their work more easily accessible. | ||
A toolkit providing easy and unified access to building control environments for reinforcement learning (RL). Compared to other domains, `RL environments for building control <https://github.com/rdnfn/rl-building-control#environments>`_ tend to be more difficult to install and handle. Most environments require the user to either manually install a building simulator (e.g. `EnergyPlus <https://github.com/NREL/EnergyPlus>`_) or to manually manage Docker containers. This can be tedious. | ||
|
||
Beobench was created to make building control environments easier to use and experiments more reproducible. Beobench uses Docker to manage all environment dependencies in the background so that the user doesn't have to. A standardised API allows the user to easily configure experiments and evaluate new RL agents on building control environments. | ||
|
||
For more information go to the `documentation <https://beobench.readthedocs.io/>`_ and the `GitHub code repository <https://github.com/rdnfn/beobench>`_. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Submodule beobench_contrib
updated
3 files
+3 −2 | gyms/boptest/Dockerfile | |
+13 −18 | gyms/boptest/env_creator.py | |
+2 −2 | gyms/energym/env_creator.py |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
72 changes: 72 additions & 0 deletions
72
beobench/data/configs/baselines/boptest_arroyo2022_dqn.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,72 @@ | ||
# A first attempt at reproduction of experiments in the following paper by Arroyo et al. | ||
# https://lirias.kuleuven.be/retrieve/658452 | ||
# | ||
# Some of the descriptions of RLlib config values are taken from | ||
# https://docs.ray.io/en/latest/rllib/rllib-training.html | ||
# other from | ||
# https://github.com/ibpsa/project1-boptest-gym/blob/master/boptestGymEnv.py | ||
|
||
env: | ||
gym: boptest | ||
config: | ||
name: bestest_hydronic_heat_pump | ||
# whether to normalise the observations and actions | ||
normalize: True | ||
discretize: True | ||
gym_kwargs: | ||
actions: ["oveHeaPumY_u"] | ||
# Dictionary mapping observation keys to a tuple with the lower | ||
# and upper bound of each observation. Observation keys must | ||
# belong either to the set of measurements or to the set of | ||
# forecasting variables of the BOPTEST test case. Contrary to | ||
# the actions, the expected minimum and maximum values of the | ||
# measurement and forecasting variables are not provided from | ||
# the BOPTEST framework, although they are still relevant here | ||
# e.g. for normalization or discretization. Therefore, these | ||
# bounds need to be provided by the user. | ||
# If `time` is included as an observation, the time in seconds | ||
# will be passed to the agent. This is the remainder time from | ||
# the beginning of the episode and for periods of the length | ||
# specified in the upper bound of the time feature. | ||
observations: | ||
reaTZon_y: [280.0, 310.0] | ||
# Set to True if desired to use a random start time for each episode | ||
random_start_time: True | ||
# Maximum duration of each episode in seconds | ||
max_episode_length: 31536000 # one year in seconds | ||
# Desired simulation period to initialize each episode | ||
warmup_period: 10 | ||
# Sampling time in seconds | ||
step_period: 900 # = 15min | ||
agent: | ||
origin: rllib | ||
config: | ||
run_or_experiment: DQN | ||
config: | ||
lr: 0.0001 | ||
gamma: 0.99 | ||
# Number of steps after which the episode is forced to terminate. Defaults | ||
# to `env.spec.max_episode_steps` (if present) for Gym envs. | ||
horizon: 24 # one week 672 = 96 * 7 # other previous values: 96 # 10000 # | ||
# Calculate rewards but don't reset the environment when the horizon is | ||
# hit. This allows value estimation and RNN state to span across logical | ||
# episodes denoted by horizon. This only has an effect if horizon != inf. | ||
soft_horizon: True | ||
num_workers: 1 # this is required, otherwise effectively assuming simulator. | ||
# Training batch size, if applicable. Should be >= rollout_fragment_length. | ||
# Samples batches will be concatenated together to a batch of this size, | ||
# which is then passed to SGD. | ||
train_batch_size: 24 | ||
stop: | ||
timesteps_total: 105120 # = 3 years # 35040 # = 365 * 96 (full year) | ||
wrappers: | ||
- origin: general | ||
class: WandbLogger | ||
config: | ||
log_freq: 1 | ||
summary_metric_keys: | ||
- env.returns.reward | ||
general: | ||
wandb_project: boptest_arroyo2022_baseline | ||
wandb_group: random_action | ||
num_samples: 1 |
59 changes: 59 additions & 0 deletions
59
beobench/data/configs/baselines/boptest_arroyo2022_random_agent.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
# A first attempt at reproduction of experiments in the following paper by Arroyo et al. | ||
# https://lirias.kuleuven.be/retrieve/658452 | ||
# | ||
# Some of the descriptions of RLlib config values are taken from | ||
# https://docs.ray.io/en/latest/rllib/rllib-training.html | ||
# other from | ||
# https://github.com/ibpsa/project1-boptest-gym/blob/master/boptestGymEnv.py | ||
|
||
env: | ||
gym: boptest | ||
name: bestest_hydronic_heat_pump | ||
config: | ||
boptest_testcase: bestest_hydronic_heat_pump | ||
# whether to normalise the observations and actions | ||
normalize: True | ||
gym_kwargs: | ||
actions: ["oveHeaPumY_u"] | ||
# Dictionary mapping observation keys to a tuple with the lower | ||
# and upper bound of each observation. Observation keys must | ||
# belong either to the set of measurements or to the set of | ||
# forecasting variables of the BOPTEST test case. Contrary to | ||
# the actions, the expected minimum and maximum values of the | ||
# measurement and forecasting variables are not provided from | ||
# the BOPTEST framework, although they are still relevant here | ||
# e.g. for normalization or discretization. Therefore, these | ||
# bounds need to be provided by the user. | ||
# If `time` is included as an observation, the time in seconds | ||
# will be passed to the agent. This is the remainder time from | ||
# the beginning of the episode and for periods of the length | ||
# specified in the upper bound of the time feature. | ||
observations: | ||
reaTZon_y: [280.0, 310.0] | ||
# Set to True if desired to use a random start time for each episode | ||
random_start_time: True | ||
# Maximum duration of each episode in seconds | ||
max_episode_length: 31536000 # one year in seconds | ||
# Desired simulation period to initialize each episode | ||
warmup_period: 10 | ||
# Sampling time in seconds | ||
step_period: 900 # = 15min | ||
agent: | ||
origin: random_action | ||
config: | ||
config: | ||
horizon: 96 | ||
stop: | ||
timesteps_total: 10000 | ||
imitate_rllib_env_checks: True | ||
wrappers: | ||
- origin: general | ||
class: WandbLogger | ||
config: | ||
log_freq: 1 | ||
summary_metric_keys: | ||
- env.returns.reward | ||
general: | ||
wandb_project: boptest_arroyo2022_baseline | ||
wandb_group: random_action | ||
num_samples: 1 |
Oops, something went wrong.