Go to file
Yaguang e8d6c08db0 Merge log_helper into utils and change logging mechanism. 2018-09-26 11:33:21 -07:00
data Code refactoring, including data loading, logging, configuration, removing redundant code. 2018-09-26 11:19:00 -07:00
figures Initial commit. 2017-12-07 17:35:50 -08:00
lib Merge log_helper into utils and change logging mechanism. 2018-09-26 11:33:21 -07:00
model Merge log_helper into utils and change logging mechanism. 2018-09-26 11:33:21 -07:00
scripts Merge log_helper into utils and change logging mechanism. 2018-09-26 11:33:21 -07:00
.gitignore Initial commit. 2017-12-07 17:35:50 -08:00
LICENSE Initial commit. 2017-12-07 17:35:50 -08:00
README.md Update README.md 2018-07-22 18:55:35 +08:00
dcrnn_train.py Code refactoring, including data loading, logging, configuration, removing redundant code. 2018-09-26 11:19:00 -07:00
requirements.txt Replace json with yaml for configuration. 2018-04-18 11:51:35 -07:00
run_demo.py Code refactoring, including data loading, logging, configuration, removing redundant code. 2018-09-26 11:19:00 -07:00

README.md

Diffusion Convolutional Recurrent Neural Network: Data-Driven Traffic Forecasting

Dependency Status

Diffusion Convolutional Recurrent Neural Network

This is a TensorFlow implementation of Diffusion Convolutional Recurrent Neural Network in the following paper:
Yaguang Li, Rose Yu, Cyrus Shahabi, Yan Liu, Diffusion Convolutional Recurrent Neural Network: Data-Driven Traffic Forecasting, ICLR 2018.

Requirements

  • hyperopt>=0.1
  • scipy>=0.19.0
  • numpy>=1.12.1
  • pandas>=0.19.2
  • tensorflow>=1.3.0
  • pyaml

Dependency can be installed using the following command:

pip install -r requirements.txt

Traffic Data

The traffic data file for Los Angeles, i.e., df_highway_2012_4mon_sample.h5, is available here, and should be put into the data/ folder. Besides, the locations of sensors are available at data/sensor_graph/graph_sensor_locations.csv.

Graph Construction

As the currently implementation is based on pre-calculated road network distances between sensors, it currently only supports sensor ids in Los Angeles (see data/sensor_graph/sensor_info_201206.csv).

python gen_adj_mx.py  --sensor_ids_filename=data/sensor_graph/graph_sensor_ids.txt --normalized_k=0.1\
    --output_pkl_filename=data/sensor_graph/adj_mx.pkl

Train the Model

python dcrnn_train.py --config_filename=data/model/dcrnn_config.yaml

Run the Pre-trained Model

python run_demo.py

The generated prediction of DCRNN is in data/results/dcrnn_predictions_[1-12].h5.

More details are being added ...

Citation

If you find this repository useful in your research, please cite the following paper:

@inproceedings{li2018dcrnn_traffic,
  title={Diffusion Convolutional Recurrent Neural Network: Data-Driven Traffic Forecasting},
  author={Li, Yaguang and Yu, Rose and Shahabi, Cyrus and Liu, Yan},
  booktitle={International Conference on Learning Representations (ICLR '18)},
  year={2018}
}