Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ADGEfficiency/energy-py
Reinforcement learning for energy systems
https://github.com/ADGEfficiency/energy-py
energy reinforcement-learning
Last synced: 3 days ago
JSON representation
Reinforcement learning for energy systems
- Host: GitHub
- URL: https://github.com/ADGEfficiency/energy-py
- Owner: ADGEfficiency
- License: mit
- Created: 2017-04-03T10:14:01.000Z (over 7 years ago)
- Default Branch: main
- Last Pushed: 2023-03-25T01:04:44.000Z (over 1 year ago)
- Last Synced: 2024-05-11T04:01:14.314Z (6 months ago)
- Topics: energy, reinforcement-learning
- Language: Python
- Homepage:
- Size: 118 KB
- Stars: 174
- Watchers: 12
- Forks: 33
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
- open-sustainable-technology - energy-py - Reinforcement learning for energy systems. (Energy Systems / Energy System Modeling Frameworks)
README
# energy-py
[![Build Status](https://travis-ci.org/ADGEfficiency/energy-py.svg?branch=master)](https://travis-ci.org/ADGEfficiency/energy-py)
energy-py is a framework for running reinforcement learning experiments on energy environments.
The library is focused on electric battery storage, and offers a implementation of a many batteries operating in parallel.
energy-py includes an implementation of the Soft Actor-Critic reinforcement learning agent, implementated in Tensorflow 2:
- test & train episodes based on historical Australian electricity price data,
- checkpoints & restarts,
- logging in Tensorboard.energy-py is built and maintained by Adam Green - [email protected].
## Setup
```bash
$ make setup
```## Test
```bash
$ make test
```## Running experiments
`energypy` has a high level API to run a specific run of an experiment from a `JSON` config file.
The most interesting experiment is to run battery storage for price arbitrage in the Australian electricity market. This requires grabbing some data from S3. The command below will download a pre-made dataset and unzip it to `./dataset`:
```bash
$ make pulls3-dataset
```You can then run the experiment from a JSON file:
```bash
$ energypy benchmarks/nem-battery.json
```Results are saved into `./experiments/{env_name}/{run_name}`:
```bash
$ tree -L 3 experiments
experiments/
└── battery
├── nine
│ ├── checkpoints
│ ├── hyperparameters.json
│ ├── logs
│ └── tensorboard
└── random.pkl
```Also provide wrappers around two `gym` environments - Pendulum and Lunar Lander:
```bash
$ energypy benchmarks/pendulum.json
```Running the Lunar Lander experiment has a dependency on Swig and pybox2d - which can require a bit of elbow-grease to setup depending on your environment.
```bash
$ energypy benchmarks/lunar.json
```