This is the official implementation for the NeurIPS2024 paper
pip install -r requirements.txt
We use pytorch 1.9.0 + rocm 4.2 environment with a python version 3.6.13. All requried packages are in requirements.txt.
models.py
: the model's structure used in the experimentsutils.py
: utilization functions for computing metrics of the experimentsDivFL_utils.py
: utilization functions for DivFL sampling methodclustering_utils.py
: utilization function for Clustered sampling methodsampling.py
: functions for generating data partitions with Dirichlet distributionHiCS.py
: utilization function for HiCS-FL sampling methodtrain.py
: training main function
- --dataset: CIFAR10, CIFAR100, FMNIST
- --batch_size: size of mini batch
- --num_epochs: total number of global communication rounds
- --num_clients: number of clients
- --sampling_rate: fraction of clients participating local training each global round
- --local_ep: number of local epochs
- --alphas: list of concentration parameters for generating data partitions
- --T: scaling parameter, temperature
- --seed: random seed for generating data partitions
- --alg: random, pow-d, CS, DivFL, HiCS
- --lr: initializing learning rate
We gave an example in train_script.sh
Please cite our paper, if you think this is useful:
@article{chen2025heterogeneity,
title={Heterogeneity-guided client sampling: Towards fast and efficient non-IID federated learning},
author={Chen, Huancheng and Vikalo, Haris},
journal={Advances in Neural Information Processing Systems},
volume={37},
pages={65525--65561},
year={2025}
}