federated-digits / README.md
ARotting's picture
Publish Non-IID five-client FedAvg simulation
89006f1 verified
|
Raw
History Blame Contribute Delete
1.43 kB
metadata
license: apache-2.0
task_categories:
  - image-classification
tags:
  - federated-learning
  - fedavg
  - non-iid
  - pytorch

Federated Digits

Federated Digits simulates five data-siloed clients learning a shared 8x8 digit classifier with Federated Averaging. Class samples are partitioned through a low-concentration Dirichlet distribution, producing deliberately non-IID clients.

The project reports:

  • per-client class distributions;
  • global test accuracy after every communication round;
  • client-update disagreement;
  • a centralized training control using the same architecture.

No raw client examples are exchanged during federated rounds; only model parameters are averaged. This is a local simulation, not a networked privacy guarantee.

Reproduce

uv run python projects/federated-digits/train.py

Verified results

  • Model size: 2,410 parameters
  • Clients: 5, with Dirichlet concentration 0.25
  • Communication rounds: 30, with two local epochs per round
  • Round-one global accuracy: 20.89%
  • Final global accuracy: 93.33%
  • Best global accuracy: 94.00%
  • Centralized control: 96.89%
  • Final federated-to-centralized gap: -3.56 percentage points

Mean client-update disagreement fell from 1.487 after the first round to 0.500 after round 30. The artifact includes every round's accuracy, client loss, update disagreement, and each client's class distribution.