1.2 Option Configuration
The full options are shown as below
Category | Name | Type | Description | Default Value | Comment |
---|---|---|---|---|---|
Training Option | num_rounds | int | number of communication rounds | 20 | |
proportion | float | proportion of clients sampled per round | 0.2 | ||
learning_rate_decay | float | learning rate decay for the training process | 0.998 | effective if lr_scheduler>-1 | |
lr_scheduler | int | type of the global learning rate scheduler | -1 | effective if larger than -1 | |
early_stop | int | stop training if there is no improvement for no smaller than the maximum rounds | -1 | effective if larger than -1 | |
num_epochs | int | number of epochs of local training | 5 | ||
num_steps | int | number of steps of local training, conflict with num_epochs | -1 | dominates num_epochs if larger than 0 | |
learning_rate | float | learning rate of local training | 0.1 | ||
batch_size | int\float | batch size of local training | 64 | -1 means full batch, float value means the ratio of the full datasets | |
optimizer | str | to select the optimizer of local training | 'sgd' | 'sgd','adam','rmsprop','adagrad' | |
clip_grad | float | clipping gradients if the max norm of gradients \ | \ | g|| > clip_norm > 0 | |
momentum | float | momentum of local training | 0.0 | ||
weight_decay | float | weight decay of local training | 0.0 | ||
num_edge_rounds | int | number of edge rounds in hierFL | 5 | effective if scene is 'hierarchical' | |
algo_para | int\list | algorithm-specific hyper-parameters | [] | the order should be consistent with the claim | |
sample | str | to select sampling form | 'uniform' | 'uniform', 'md', 'full', x+'_with_availability' | |
aggregate | str | to select aggregation form | 'other' | 'uniform', 'weighted_com', 'weighted_scale', 'other' | |
External Option | train_holdout | float | the rate of holding out the validation dataset from all the local training datasets | 0.1 | |
test_holdout | float | the rate of holding out the validation dataset from the testing datasets owned by the server | 0.0 | effective if the server has no validation data | |
local_test | bool | the local validation data will be equally split into validation and testing parts if True | False | ||
seed | int | seed for all the random modules | 0 | ||
dataseed | int | seed for all the random modules for local data train/val/test partition | 0 | ||
gpu | int\list | GPU IDs and empty input means using CPU | [] | ||
server_with_cpu | bool | the model parameters will be stored in the memory if True | False | ||
num_parallels | int | the number of parallels during communications | 1 | ||
num_workers | int | the number of workers of DataLoader | 0 | ||
pin_memory | bool | 1)pin_memory of DataLoader, and 2) load data directly into memory | False | ||
test_batch_size | int | the batch_size used in testing phase | 512 | ||
Simulator Option | availability | str | to select client availability mode | 'IDL' | 'IDL','YMF','MDF','LDF','YFF', 'HOMO','LN','SLN','YC' |
connectivity | str | to select client connectivity mode | 'IDL' | 'IDL','HOMO' | |
completeness | str | to select client completeness mode | 'IDL' | 'IDL','PDU','FSU','ADU','ASU' | |
responsiveness | str | to select client responsiveness mode | 'IDL' | 'IDL','LN','UNI' | |
Logger Option | log_level | str | the level of logger | 'INFO' | 'INFO','DEBUG' |
log_file | bool | whether log to file and default value is False | False | ||
no_log_console | bool | whether log to screen and default value is True | True | ||
no_overwrite | bool | whether to overwrite the old result | False | ||
eval_interval | int | evaluate every __ rounds; | 1 |