How mihirchouhan/data-center-federated-learning works
This is a resumable M100 forecasting and research-training template. The user-facing workflow downloads and verifies Dataset 5, prepares chronological forecasting windows, trains recurrent models, then evaluates held-out forecasts and writes artifacts. Alongside that baseline, the repository contains centralized and simulated FedAvg experiments, historical-coverage audits, and missing-data policy experiments. The graph includes shared data, model, evaluation, resource, and durable-I/O layers. Relationships beyond README-described stages are limited to references recorded in the source index; unsampled implementations are not assumed to have additional call paths.
Main entry points: federated_rounds.py Round Orchestration · pipeline.py Pipeline CLI · experiment_eval.py Experiment Evaluation · history_data_v4.py Historical Data Access
Components 29
M100 Workflow
- Pipeline CLI
pipeline.py - Dataset Download
src/download.py - Window Preparation
src/preprocess.py - Training CLI
main.py
Experiment Framework
- Experiment Runner
experiments.py - Frozen Experiment Data
src/experiment_data.py - Experiment Models
src/experiment_models.py - Experiment Evaluation
src/experiment_eval.py - Resource Monitoring
src/experiment_resources.py - Centralized SGD
src/centralized_sgd.py - Centralized Evaluation
src/centralized_evaluate.py
Federated Training
- FedAvg Runner
federated.py - Federated Partitions
src/federated_data.py - Round Orchestration
src/federated_rounds.py - Client Updates
src/federated_train.py - Round Commits
src/federated_io.py - FedAvg Evaluation
src/federated_evaluate.py
Data Research
- Historical Data Access
src/history_data_v4.py - Coverage Audit
src/history_coverage_v4.py - Cohort Builder
src/v5_missing_data/build_training_cohorts.py - Missing-Data Training
src/v5_missing_data/run_policy_experiments.py - Policy Evaluation
src/v5_missing_data/evaluate_policy_models.py - Policy Training Data
src/v5_missing_data/training_data.py - Policy Run I/O
src/v5_missing_data/training_io.py
Shared Runtime
- Forecast Model
src/model.py - Forecast Plotting
src/forecast_plot.py - Durable I/O
src/io_utils.py - Multi-node Data
src/multinode.py
Other components
- Researcher
Connections 44
- Researcher → Pipeline CLI: runs
README.md - Pipeline CLI → Dataset Download: downloads data
README.md - Pipeline CLI → Window Preparation: prepares data
README.md - Pipeline CLI → Training CLI: trains
README.md - Pipeline CLI → Forecast Plotting: plots forecasts
pipeline.py - Pipeline CLI → Durable I/O: uses
pipeline.py - Training CLI → Forecast Model: uses
main.py - Training CLI → Durable I/O: uses
main.py - Pipeline CLI → Forecast Model: uses
pipeline.py - Experiment Runner → Frozen Experiment Data: uses
experiments.py - Experiment Runner → Experiment Models: uses
experiments.py - Experiment Runner → Experiment Evaluation: uses
experiments.py - Experiment Runner → Resource Monitoring: uses
experiments.py - Experiment Models → Frozen Experiment Data: uses
src/experiment_models.py - Experiment Models → Forecast Model: uses
src/experiment_models.py - Experiment Evaluation → Frozen Experiment Data: reads
src/experiment_eval.py - Experiment Evaluation → Forecast Plotting: plots
src/experiment_eval.py - Experiment Evaluation → Durable I/O: writes
src/experiment_eval.py - FedAvg Runner → Frozen Experiment Data: uses
federated.py - FedAvg Runner → Round Orchestration: runs rounds
federated.py - Round Orchestration → Federated Partitions: uses
src/federated_rounds.py - Round Orchestration → Client Updates: uses
src/federated_rounds.py - Round Orchestration → Round Commits: commits
src/federated_rounds.py - Round Orchestration → Experiment Evaluation: uses
src/federated_rounds.py - Round Orchestration → Resource Monitoring: monitors
src/federated_rounds.py - Round Orchestration → Forecast Model: initializes
src/federated_rounds.py - FedAvg Evaluation → Round Commits: reads
src/federated_evaluate.py - FedAvg Evaluation → Round Orchestration: uses
src/federated_evaluate.py - Centralized SGD → Federated Partitions: uses
src/centralized_sgd.py - Centralized SGD → Round Commits: uses
src/centralized_sgd.py - Centralized SGD → Round Orchestration: uses
src/centralized_sgd.py - Centralized Evaluation → FedAvg Evaluation: uses
src/centralized_evaluate.py - Coverage Audit → Historical Data Access: uses
src/history_coverage_v4.py - Historical Data Access → Multi-node Data: uses
src/history_data_v4.py - Historical Data Access → Window Preparation: uses
src/history_data_v4.py - Cohort Builder → Coverage Audit: uses
src/v5_missing_data/build_training_cohorts.py - Cohort Builder → Historical Data Access: uses
src/v5_missing_data/build_training_cohorts.py - Missing-Data Training → Policy Training Data: uses
src/v5_missing_data/run_policy_experiments.py - Missing-Data Training → Policy Run I/O: uses
src/v5_missing_data/run_policy_experiments.py - Missing-Data Training → Policy Evaluation: scores with
src/v5_missing_data/run_policy_experiments.py - Policy Evaluation → Policy Training Data: uses
src/v5_missing_data/evaluate_policy_models.py - Policy Evaluation → Policy Run I/O: uses
src/v5_missing_data/evaluate_policy_models.py - Policy Training Data → Historical Data Access: uses
src/v5_missing_data/training_data.py - Policy Run I/O → Durable I/O: uses
src/v5_missing_data/training_io.py