See the Pipfile
for python environment requirements.
pipenv update
The dataset partitioning is inspired by Federated Learning on Non-IID Data Silos: An Experimental Study.
. ./shell/fog_partitions.sh {fog_partitions} {client_partitions}
. ./shell/client_partitions.sh {fog_partitions} {client_partitions}
fog_partitions
: dataset partitioning for fog serversclient_partitions
: dataset partitioning for clients
There are three variants for partitioning.
iid
: each participant has 10 labelsnoniid-label2
: each participant has 2 labelsnoniid-label1
: each participant has 1 label
To simulate the large cohorts of clients, we leverage Ray
following the code examples provided by Flower.
. ./run_fedfog.sh {fog_partitions} {client_partitions}
. ./run_fml.sh {fog_partitions} {client_partitions} {alpha} {beta}
. ./run_f2mkd.sh {fog_partitions} {client_partitions} {alpha} {beta}
alpha
and beta
are FL strategy-specific hyperparameters.