← all repositories
liyaguang/DCRNN

Traffic forecasting with a graph twist and a 2018 pedigree

A reference TensorFlow implementation of DCRNN that treats road sensors as nodes in a diffusion process, not isolated time series.

1.4k stars Python ML FrameworksDomain Apps
DCRNN
Not currently ranked — collecting fresh signals.
star history

What it does DCRNN forecasts traffic speeds across sensor networks by combining graph convolutions with recurrent cells. It models traffic as a diffusion process on the road network—information spreads bidirectionally through the graph—then feeds those spatial representations into an encoder-decoder GRU for temporal prediction. The repo includes pre-trained models for Los Angeles (METR-LA) and Bay Area (PEMS-BAY) datasets, plus scripts for data prep, graph construction, and baseline evaluation.

The interesting bit The “diffusion convolution” is the hook: instead of standard spectral graph convolutions, it uses random-walk diffusion on the directed sensor graph, which better captures how traffic actually propagates. The authors later scaled this to 11,160 California sensors via graph partitioning, training in ~3 hours on a modest GPU cluster and running inference on CPUs.

Key highlights

  • ICLR 2018 paper with maintained reference implementation (TensorFlow ≥1.3.0)
  • Pre-trained configs and TensorBoard logs for both METR-LA and PEMS-BAY
  • Includes MAE/MAPE/RMSE benchmarks at 5/15/30/60 minute horizons (numbers postdate the paper due to a 2018 bug fix)
  • Graph partitioning extension for large-scale deployment documented with external paper/slides/video
  • Applied beyond traffic: brain connectivity, air quality, internet traffic (cited in README)
  • Third-party PyTorch reimplementation linked

Caveats

  • Stuck on TensorFlow 1.x era; no migration to TF 2 or modern PyTorch in this repo
  • Graph construction currently only supports pre-calculated LA sensor distances; Bay Area graph generation is less clear
  • Training can suffer loss explosion; workaround is manual restart or learning-rate schedule tweaking
  • “More details are being added” section suggests README is incomplete

Verdict Worth studying if you’re building spatiotemporal graph models or need a reproducible traffic baseline. Skip if you want production-ready modern frameworks—this is a research artifact with historical weight, not a maintained library.

Frequently asked

What is liyaguang/DCRNN?
A reference TensorFlow implementation of DCRNN that treats road sensors as nodes in a diffusion process, not isolated time series.
Is DCRNN open source?
Yes — liyaguang/DCRNN is open source, released under the MIT license.
What language is DCRNN written in?
liyaguang/DCRNN is primarily written in Python.
How popular is DCRNN?
liyaguang/DCRNN has 1.4k stars on GitHub.
Where can I find DCRNN?
liyaguang/DCRNN is on GitHub at https://github.com/liyaguang/DCRNN.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.