This repo is a fork of the original competition codebase and contains all the necessary code to train and evaluate our models. Trained models for the cc and eta task are also included.
The setup is very similar to the original competition code, instructions can also be found here
First, setup the environment:
conda env update -f environment.yaml
conda activate t4c22
# Install pyG
CUDA="cu113"
python -m pip install -r install-extras-torch-geometric.txt -f https://data.pyg.org/whl/torch-1.11.0+${CUDA}.html
python t4c22/misc/check_torch_geometric_setup.py
Then follow the instructions here to download the data, extract it and create labels in a data directory of your choice.
Edit t4c22/t4c22_config.json
to link towards this data directory.
Lastly, set the PYTHONPATH to the base of the repo clone:
export PYTHONPATH=<root of the repo clone>
Now you are ready to run trainings and create submission files.
Our pretrained models are located in t4c22/gnn_code/models
(one model per task and city).
To create submissions that use them, run the script according to the task (note that the scripts assume that you have a CUDA device available):
cd t4c22/gnn_code
# Core competition
python create_cc_submission.py
# Extended competition
python create_eta_submission.py
The code is setup to load the pretrained models, to use your own, specify the path to your models in the gnn_cities
list in the scripts and make sure that the model configuration is correct.
Also, the basedir
can be set to another path to load other test data.
We provide scripts to train the cc models on the full dataset and the eta models on an 80/20 split. The cc training uses Approach (2) as explained in the paper and the eta training a combination of Approach (1) and (2) To run the trainings:
cd t4c22/gnn_code
# Start training for the core competition
python train_cc.py
# Start training for the extended competition
python train_eta.py
Models are stored in models
after every epoch and can be used for the submission creation.
To cite our work:
@article{HierarchicalTrafficGNN2022,
title = {Hierarchical Graph Structures for Congestion and ETA Prediction},
author = {Grötschla, Florian and Mathys, Joël},
url = {https://arxiv.org/abs/2211.11762},
publisher = {arXiv},
year={2022}
}