How ravnoor-kaur/traffic-fl works
This research project compares hourly traffic forecasting with a last-hour baseline, centralized GRU training, and Flower-based federated GRU training across four junctions. The workflow runs from traffic data exploration and per-junction preprocessing through model training and test evaluation, then records and compares results. Federated clients train locally and exchange model weights with a FedAvg server. The graph preserves the documented exploration and experiment branches; relationships for unsampled modules are included only where the README or source index supports them.
Main entry points: server_app.py FedAvg server · train_central.py Central training · client_app.py Junction client · compare.py Result comparison
Components 14
Data preparation
- Data exploration
src/explore.py - Junction preprocessing
src/data_prep.py
Training experiments
- GRU model and training
src/model.py - Central training
src/train_central.py
Federated learning
- Federated task helpers
federated/trafficfl/task.py - Junction client
federated/trafficfl/client_app.py - FedAvg server
federated/trafficfl/server_app.py
Evaluation and results
- Experiment log
src/model.py - Round metrics
federated/trafficfl/server_app.py - Result comparison
src/compare.py - Result artifacts
results
Other components
- Researcher
- Traffic CSV
- Flower runtime
Connections 24
- Researcher → Data exploration: runs exploration
README.md - Traffic CSV → Data exploration: reads data
src/explore.py - Researcher → Junction preprocessing: runs preprocessing
README.md - Traffic CSV → Junction preprocessing: loads and sorts
src/data_prep.py - Researcher → Central training: runs experiment
README.md - Central training → Junction preprocessing: prepares junctions
src/train_central.py - Central training → GRU model and training: trains and evaluates
src/train_central.py - Central training → Experiment log: records metrics
src/train_central.py - Researcher → FedAvg server: starts federation
README.md - FedAvg server → Federated task helpers: loads tools and data
federated/trafficfl/server_app.py - Federated task helpers → Junction preprocessing: prepares junction data
federated/trafficfl/task.py - Federated task helpers → GRU model and training: provides model tools
federated/trafficfl/task.py - FedAvg server → Flower runtime: starts FedAvg
federated/trafficfl/server_app.py - Flower runtime → Junction client: dispatches rounds
README.md - Junction client → Federated task helpers: loads local data
federated/trafficfl/client_app.py - Junction client → GRU model and training: trains locally
federated/trafficfl/client_app.py - Junction client → Flower runtime: returns weights
federated/trafficfl/client_app.py - FedAvg server → Round metrics: writes round metrics
federated/trafficfl/server_app.py - FedAvg server → Experiment log: logs final metrics
federated/trafficfl/server_app.py - Researcher → Result comparison: runs comparison
README.md - Result comparison → Experiment log: reads results
src/compare.py - Result comparison → Round metrics: reads rounds
src/compare.py - Result comparison → Result artifacts: writes tables and charts
src/compare.py - Data exploration → Result artifacts: saves exploration charts
src/explore.py