Beobench is a toolkit providing easy and unified access to building control environments for reinforcement learning (RL).
Project description
A toolkit providing easy and unified access to building control environments for reinforcement learning (RL). Compared to other domains, RL environments for building control tend to be more difficult to install and handle. Most environments require the user to either manually install a building simulator (e.g. 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 and the GitHub code repository.
History
0.5.1 (2022-06-28)
Features:
Add pretty logging based on loguru package. Now all Beobench output is clearly marked as such.
Improvements
Enable adding wrapper without setting config.
Add demo.yaml simple example config.
Fixes
Update Sinergym integration to latest Sinergym version.
0.5.0 (2022-05-26)
Features:
Mean and cummulative metrics can now be logged by WandbLogger wrapper.
Support for automatically running multiple samples/trials of same experiment via num_samples config parameter.
Configs named .beobench.yml will be automatically parsed when Beobench is run in directory containing such a config. This allows users to set e.g. wandb API keys without referring to the config in every Beobench command call.
Configs from experiments now specify the Beobench version used. When trying to rerun an experiment this version will be checked, and an error thrown if there is a mismatch between installed and requested version.
Add improved high-level API for getting started. This uses the CLI arguments --method, --gym and --env. Example usage: beobench run --method ppo --gym sinergym --env Eplus-5Zone-hot-continuous-v1 (#55).
Improvements
Add CITATION.cff file to make citing software easier.
By default, docker builds of experiment images are now skipped if an image with tag corresponding to installed Beobench version already exists.
Remove outdated guides and add yaml configuration description from docs (#38, #76, #78).
Add support for logging multidimensional actions to wandb.
Add support for logging summary metrics on every env reset to wandb.
Energym config now uses name argument like other integrations (#34).
Fixes
Updated BOPTEST integration to work with current version of Beobench.
0.4.4 (2022-05-09)
Features:
Add general support for wrappers. (#28)
Improvements:
Make dev beobench build part of image build process for improved speed.
Add number of environment steps (env_step) to wandb logging.
Update logo to new version (#48)
Update docs and main readme to include more useful quickstart guide, which includes a custom agent (#47)
Fixes:
Enable automatic episode data logging in RLlib integration for long training periods.
Update broken links in main readme env list (#40)
0.4.3 (2022-04-12)
Feature: enable easy access to standard configs via util method
Feature: add non-normalised observations to info in energym integration (#62)
Feature: enable logging full episode data from RLlib and adding this data to wandb (#62)
Feature: ship integrations with package improving image build times (#44)
Feature: add wandb logging support for random agent script (#59)
Feature: add rule-based agent script based on energym controller (#60)
Fix: add importlib-resources backport package to requirements
Fix: allow users to disable reset() method in energym envs (#43)
Aux: add automatic deployment of PyPI package via GitHub actions (#50)
Aux: add tests and automatic checks on PRs (#25)
0.4.2 (2022-04-04)
Feature: defining all relevant options/kwargs of CLI an API is now supported yaml files (#54)
Feature: allow multiple configs to be given to both CLI (giving multiple -c options) and Python API (as a list) (#51)
Fix: adapted Energym env reset() method to avoid triggering long warm-up times with additional simulation runs (#43)
Fix: enable container build even if prior build failed midway and left artifacts
0.4.1 (2022-03-30)
Feature: enable package extras to be given in development mode
Feature: add support for arm64/aarch64-based development by forcing experiment containers to run as amd64 containers on those systems (#32)
Fix: add gym to extended package requirements
0.4.0 (2022-03-28)
Make dependencies that are only used inside experiment/gym containers optional (for all dependencies install via pip install beobench[extended])
Add two part experiment image build process so that there is shared beobench installation dockerfile
Add support for yaml config files (!)
Overhaul of documentation, including new envs page and new theme
Enable RLlib free experiment containers when not required
Add beobench_contrib as submodule
Simplify Pypi readme file
Remove GPU requirement for devcontainer
0.3.0 (2022-02-14)
Add complete redesign of CLI: main command changed from python -m beobench.experiment.scheduler to beobench run.
Add support for energym environments
Add support for MLflow experiment tracking
Add support for custom agents
0.2.1 (2022-02-03)
Add integration with sinergym
Move gym integrations to separate beobench_contrib repo
Make usage of GPUs in containers optional
0.2.0 (2022-01-18)
Enable adding custom environments to beobench with docker build context-based syntax
Save experiment results on host machine
Major improvements to documentation
Remove unnecessary wandb arguments in main CLI
0.1.0 (2022-01-10)
First release on PyPI.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for beobench-0.5.1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 21df9dba33b02fc5f06587a1be787fc4f6f3166a1e1dc08a71189d3dac83ef07 |
|
MD5 | 19ae30fb2d5282b057e56cf2fe1d2aef |
|
BLAKE2b-256 | a0a7f9eaec7ce5d6d4be21b38780d2eb7e2f5cd05cf38e27c8eedb768ab33bff |