Update info on where code should be placed

This commit is contained in:
Anssi "Miffyli" Kanervisto 2020-10-11 22:02:45 +03:00
parent 86508f0694
commit 383ce59c85
1 changed files with 7 additions and 8 deletions

View File

@ -29,19 +29,18 @@ are not very strict.
## How to implement your suggestion ## How to implement your suggestion
All code will go under `sb3_contrib/[feature_name]` directory, regardless of what they implement.
The idea is to keep different contributions separate from each other and only over time combine/mature
them into a shared package.
Implement your feature/suggestion/algorithm in following ways, using the first one that applies: Implement your feature/suggestion/algorithm in following ways, using the first one that applies:
1) Environment wrapper: This can be used with any algorithm and even outside stable-baselines3. 1) Environment wrapper: This can be used with any algorithm and even outside stable-baselines3.
2) [Custom callback](https://stable-baselines3.readthedocs.io/en/master/guide/callbacks.html) Place code for these under `sb3_contrib/common/wrappers` directory.
2) [Custom callback](https://stable-baselines3.readthedocs.io/en/master/guide/callbacks.html).
Place code under `sb3_contrib/common/callbacks` directory.
3) Following the style/naming of `common` files in the stable-baseline3. If your suggestion is a specific network architecture 3) Following the style/naming of `common` files in the stable-baseline3. If your suggestion is a specific network architecture
for feature extraction from images, place this under `sb3_contrib/[feature_name]/torch_layers.py`, for example. for feature extraction from images, place this in `sb3_contrib/common/torch_layers.py`, for example.
4) A new learning algorithm. This is the last resort but most applicable solution. 4) A new learning algorithm. This is the last resort but most applicable solution.
Even if your suggestion is a (trivial) modification to an existing algorithm, create a new algorithm for it Even if your suggestion is a (trivial) modification to an existing algorithm, create a new algorithm for it
unless otherwise discussed (which inherits the base algorithm). The algorithm should use same API as unless otherwise discussed (which inherits the base algorithm). The algorithm should use same API as
stable-baselines3 algorithms (e.g. `learn`, `load`) stable-baselines3 algorithms (e.g. `learn`, `load`), and the code should be placed under
`sb3_contrib/[algorithm_name]` directory.
Look over stable-baselines3 code for the general naming of variables and try to keep this style. Look over stable-baselines3 code for the general naming of variables and try to keep this style.