federated-digits / README.md
ARotting's picture
Publish Non-IID five-client FedAvg simulation
89006f1 verified
|
Raw
History Blame Contribute Delete
1.43 kB
---
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
```powershell
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.