diff --git a/README.md b/README.md index 24f06db7f764afc80b4a40655ef639a1db4703cf..63afbd4c35e0cd03683920d784048914f5b30c04 100644 --- a/README.md +++ b/README.md @@ -3,9 +3,10 @@ This repository allows to run Rail Environment multi agent training with the RLL It should be clone inside the main flatland repository. ## Installation: -`pip install ray` - -`pip install gin-config` +```sh +pip install ray +pip install gin-config +``` To start a grid search on some parameters, you can create a folder containing a config.gin file (see example in `grid_search_configs/n_agents_grid_search/config.gin`. @@ -14,31 +15,39 @@ Then, you can modify the config.gin file path at the end of the `grid_search_tra The results will be stored inside the folder, and the learning curves can be visualized in tensorboard: -`tensorboard --logdir=/path/to/foler_containing_config_gin_file`. +``` +tensorboard --logdir=/path/to/foler_containing_config_gin_file +``` ## Gin config files In each config.gin files, all the parameters, except `local_dir` of the `run_experiment` functions have to be specified. For example, to indicate the number of agents that have to be initialized at the beginning of each simulation, the following line should be added: -`run_experiment.n_agents = 2` +``` +run_experiment.n_agents = 2 +``` If several number of agents have to be explored during the experiment, one can pass the following value to the `n_agents` parameter: -`run_experiment.n_agents = {"grid_search": [2,5]}` +``` +run_experiment.n_agents = {"grid_search": [2,5]} +``` which is the way to indicate to the tune library to experiment several values for a parameter. To reference a class or an object within gin, you should first register it from the `train_experiment.py` script adding the following line: -`gin.external_configurable(TreeObsForRailEnv)` +``` +gin.external_configurable(TreeObsForRailEnv) +``` and then a `TreeObsForRailEnv` object can be referenced in the `config.gin` file: -` +``` run_experiment.obs_builder = {"grid_search": [@TreeObsForRailEnv(), @GlobalObsForRailEnv()]} TreeObsForRailEnv.max_depth = 2 -` +``` Note that `@TreeObsForRailEnv` references the class, while `@TreeObsForRailEnv()` references instantiates an object of this class.