Home

Awesome

VHL

Code Structure.

The algorithms_standalone folder includes implementations of FedAvg and other algorithms. The data_preprocessing folder includes IID dataloader and non-IID dataloder. The fedml_core folder includes the low-level communication core. But for the standalone simulation, we do not need them. The model folder includes the architectures of deep neural networks. The experiments folder includes the configs of different algorithms and launch files of experiments.

All hyper-parameters are identified in configs/default.py.

Launch Experiments.

The experiments/main_args.conf includes the default hyper-parameters. The experiments/configs_algorithm includes the configuration hyper-parameters of the specific algorithms. The experiments/configs_system includes the configuration hyper-parameters related to the running environment. This is designed for users' convenience of no need to specifying Python Path and Data Dir when launching experiments every time.

To launch experiments, you can cd experiments/standlone. And type ./launch_standalone.sh to run the simple FedAvg code. You can type dataset=cifar10 partition_alpha=0.1 partition_method=hetero ./launch_standalone.sh to set the dataset as CIFAR-10 and the a=0.1 of LDA partition method.

To launch VHL, you can refer to experiments/standlone/VHL_exp/Exp.md for more information, in which we offer all scripts of launching baseline and VHL experiments.

Wandb Usage

If you do not want to use wandb for recording, you can add wandb_record=False in to the command. Then you don't need to install and config wandb.