← 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
Velocity · 7d
+0.5
★ / day
Trend
steady
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.

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