This repository contains code provided alongside the paper : Inductive Graph Reinforcement Learning for Massive-Scale Traffic Signal Control https://ieeexplore.ieee.org/document/9405489
https://arxiv.org/pdf/2003.05738.pdf
'requirements.txt' lists required dependencies 'code_structure.png' illustrates the structure of the code (for the training of IG-RL). Please note that it was designed with a '2-gpus setting' in mind, as illustrated.
This repository contains pre-trained models and parameters as well as config files ('.ini files') required to re-run(/train/evaluate) experiments included in the IG-RL paper.
To create your own experiment(s), you can proceed as follows :
- Create a folder/arborescence under the config folder (e.g. config/binary/New_Exp/)
- Under this new folder, create one or multiple .ini files with your own settings/hyperparameters. Multiple examples of such .ini files can be found. For instance, config/binary/GCN/Q_L/Train/BINARY_GEN_GCN_IQL.ini
- Note : There are many settings/hyperparameters in complete .ini config files. settings.ini enumerates the most important/interesting settings (with their descriptions).
- You can identify the settings you're interested in using settings.ini and look for this setting in a complete .ini file to modify it accordingly.
- Create one last .ini file at the same location, pointing toward all the .ini files you intend to include in a given run. Multiple examples of such .ini files can be found. For instance, config/binary/GCN/Train/Train_all.ini
- Execute : $python main.py --config-dir={path to the last .ini file mentioned in the previous step}
'current_schedule.pkl' is automatically generated to keep a list of .ini files/experiments which are to be executed during the current run
Results are stored alongside the .ini files (following the arborescence you defined in step 1)
Results typically include tensorboard logs :
- For experiments involving training, these logs include training metrics (losses, reward, etc.)
- For experiments involving evaluation, these logs include aggregated performance metrics (queue_lengths, delays, CO2 emissions, etc.) For experiments involving evaluations, .pkl files include detailed per-trip information (delay, duration, etc.)
Note : We are currently working on a new (improved) version of the code for IG-RL. A link will be added to this repository as soon as it becomes available.