Produce results of federated algorithms on various benchmarks
Please cite our paper in your publications if this code helps your research.
@misc{wang2023flgo,
title={FLGo: A Fully Customizable Federated Learning Platform},
author={Zheng Wang and Xiaoliang Fan and Zhaopeng Peng and Xueheng Li and Ziqi Yang and Mingkuan Feng and Zhicheng Yang and Xiao Liu and Cheng Wang},
year={2023},
eprint={2306.12079},
archivePrefix={arXiv},
primaryClass={cs.LG}
}
- Tuning Command
python tune.py --task TASKNAME --algorithm ALGORITHM --config CONFIG_PATH --gpu GPUids
- Running Command
python run.py --task TASKNAME --algorithm ALGORITHM --config CONFIG_PATH --gpu GPUids
- Optional Args
Name | Type | Desc. |
---|---|---|
model | str | the file name in the dictionary model/ that denotes a legal model in FLGo |
load_mode | str | be one of ['', 'mmap', 'mem'], which respectively denotes DefaultIO, MemmapIO, and InMemory Dataset Loading |
max_pdev | int | the maximum number of processes on each gpu device |
available_interval | int | the time interval (s) to check whether a device is available |
put_interval | int | the time interval (s) to put one process into device |
seq | bool | whether to run each process in sequencial |
train_parallel | int | the number of parallel client local training processes, default is 0 |
test_parallel | bool | whether to use data parallel when evaluating model |
use_cache | bool | whether to use the disk to dynamically cache clients' states |
- Example
# Tuning FedAvg on MNIST-IID with GPU 0 and 1
python tune.py --task mnist_iid_c100 --algorithm fedavg --config ./config/general.yml --gpu 0 1
# Runing FedAvg on MNIST-IID with GPU 0 and 1
python run.py --task mnist_iid_c100 --algorithm fedavg --config ./config/general.yml --gpu 0 1
# Show tuning Result
python get_tune_res.py --task TASK --algorithm ALGORITHM --model MODEL --config CONFIG_PATH
# Show Running Result
python get_run_res.py --task TASK --algorithm ALGORITHM --model MODEL --config CONFIG_PATH
We search the algorithmic hyper-parameter for each algorihtm according to the table below
Algorithm | Hyper-Parameter |
---|---|
fedavg | - |
fedprox | μ ∈ [0.0001, 0.001, 0.01, 0.1, 1.0] |
scaffold | η = 1.0 |
feddyn | α ∈ [0.001, 0.01, 0.03, 0.1] |
moon | μ ∈ [0.1, 1.0, 5.0, 10.0], τ=0.5 |
Remark: To specify the search space of the hyper-parameters, add algo_para: [V1, V2, ...]
in the corresponding config file.
- CIFAR10
- CIFAR100
- TinyImageNet
- MNIST
- FEMNIST
- AgNews
- Office-Caltech10
- DomainNet
- PACS
- Digits
- ProstateMRI
- Camelyon17
- Fundus
- EndoPolyp
- SpeechCommand
- Shakespeare
iid | dir5.0 | dir2.0 | dir1.0 | dir0.1 |
---|---|---|---|---|
learning_rate: [0.001, 0.005, 0.01, 0.05, 0.1]
proportion: 0.2
batch_size: 50
weight_decay: 1e-3
lr_scheduler: 0
learning_rate_decay: 0.9998
num_rounds: 2000
num_epochs: [5]
clip_grad: 10
early_stop: 500
train_holdout: 0.2
local_test: True
no_log_console: True
Algorithm | model | iid | dir5.0 | dir2.0 | dir1.0 | dir0.1 |
---|---|---|---|---|---|---|
fedavg | CNN | lr=0.1 | lr=0.1 | lr=0.05 | lr=0.1 | lr=0.1 |
fedprox | CNN | lr=0.05, μ=0.001 | lr=0.1, μ=0.01 | lr=0.1, μ=0.001 | lr=0.1, μ=0.01 | lr=0.05, μ=0.001 |
scaffold | CNN | lr=0.1 | lr=0.1 | lr=0.1 | lr=0.1 | lr=0.1 |
moon | CNN | lr=0.1, μ=0.1 | lr=0.1, μ=0.1 | lr=0.05, μ=0.1 | lr=0.1, μ=0.1 | lr=0.1, μ=0.1 |
feddyn | CNN | lr=0.1, α=0.1 | lr=0.1, α=0.1 | lr=0.05, α=0.1 | lr=0.1, α=0.03 | lr=0.05, α=0.03 |
fedavg | ResNet18 | lr=0.1 | lr=0.1 | lr=0.1 | lr=0.05 | lr=0.1 |
fedprox | ResNet18 | lr=0.05, μ=0.001 | lr=0.1, μ=0.1 | lr=0.1, μ=0.001 | lr=0.05, μ=0.0001 | lr=0.05, μ=0.001 |
scaffold | ResNet18 | lr=0.1 | lr=0.1 | lr=0.1 | lr=0.1 | lr=0.1 |
moon | ResNet18 | lr=0.1, μ=0.1 | lr=0.05, μ=0.1 | lr=0.05, μ=0.1 | lr=0.05, μ=1.0 | lr=0.05, μ=0.1 |
feddyn | ResNet18 | lr=0.1, α=0.1 | lr=0.1, α=0.1 | lr=0.1, α=0.1 | lr=0.1, α=0.1 | lr=0.1, α=0.1 |
fedavg | ResNet18-GN | lr=0.1 | lr=0.1 | lr=0.1 | lr=0.1 | lr=0.1 |
seed: [2,4388,15,333,967] # results are averaged over five random seeds
proportion: 0.2
Global Test
Algorithm | model | iid | dir5.0 | dir2.0 | dir1.0 | dir0.1 |
---|---|---|---|---|---|---|
fedavg | CNN | 81.54±0.14 | 79.95±0.22 | 78.00±0.24 | 76.54±0.39 | 69.87±0.50 |
fedprox | CNN | 80.83±0.20 | 79.86±0.30 | 78.39±0.26 | 76.58±0.50 | 69.41±0.33 |
scaffold | CNN | 85.08±0.21 | 83.84±0.23 | 82.15±0.29 | 80.42±0.21 | 65.06±0.51 |
moon | CNN | 80.88±0.27 | 79.63±0.20 | 77.21±0.33 | 75.67±0.26 | 62.44±1.10 |
feddyn | CNN | 85.09±0.22 | 83.65±0.09 | 81.54±0.30 | 80.26±0.40 | 70.82±0.50 |
fedavg | ResNet18 | 94.07±0.12 | 93.56±0.18 | 92.59±0.09 | 91.53±0.11 | 78.79±0.56 |
fedprox | ResNet18 | 93.84±0.21 | 93.55±0.05 | 92.40±0.21 | 91.46±0.19 | 77.68±1.08 |
scaffold | ResNet18 | 95.09±0.12 | 94.67±0.11 | 93.86±0.13 | 92.90±0.18 | 79.82±0.51 |
moon | ResNet18 | 94.14±0.08 | 93.63±0.18 | 92.51±0.11 | 91.34±0.21 | 77.95±0.57 |
feddyn | ResNet18 | 95.00±0.13 | 93.87±0.08 | 92.98±0.23 | 92.72±0.21 | 79.76±0.73 |
fedavg | ResNet18-GN | 91.25±0.23 | 89.93±0.24 | 88.21±0.40 | 86.42±0.73 | 66.39±1.66 |
Local Test
Algorithm | model | iid | dir5.0 | dir2.0 | dir1.0 | dir0.1 |
---|---|---|---|---|---|---|
fedavg | CNN | 80.98±0.39 | 79.97±0.12 | 77.43±0.12 | 77.03±0.29 | 70.02±0.70 |
fedprox | CNN | 80.68±0.18 | 79.81±0.41 | 77.80±0.13 | 77.05±0.20 | 69.72±0.79 |
scaffold | CNN | 85.22±0.33 | 84.23±0.44 | 81.90±0.28 | 80.23±0.19 | 65.00±0.66 |
moon | CNN | 80.26±0.38 | 79.29±0.29 | 76.81±0.58 | 76.12±0.45 | 62.26±1.09 |
feddyn | CNN | 85.25±0.26 | 83.99±0.17 | 81.76±0.17 | 80.48±0.42 | 71.69±0.29 |
fedavg | ResNet18 | 94.58±0.08 | 93.54±0.11 | 93.12±0.23 | 91.67±0.25 | 79.46±0.77 |
fedprox | ResNet18 | 94.17±0.30 | 93.44±0.18 | 92.85±0.18 | 91.37±0.13 | 78.11±1.32 |
scaffold | ResNet18 | 95.51±0.13 | 94.89±0.16 | 94.28±0.16 | 93.18±0.15 | 80.39±0.54 |
moon | ResNet18 | 94.73±0.17 | 93.67±0.23 | 92.90±0.18 | 91.63±0.32 | 78.77±0.78 |
feddyn | ResNet18 | 95.16±0.20 | 94.19±0.13 | 93.41±0.19 | 92.83±0.26 | 80.70±1.02 |
fedavg | ResNet18-GN | 91.69±0.19 | 90.04±0.26 | 87.84±0.48 | 86.52±0.69 | 66.98±1.59 |
Task | Algorithm | model | p=0.1 | p=0.2 | p=0.5 | p=1.0 |
---|---|---|---|---|---|---|
iid | fedavg | CNN | 81.70±0.30 | 81.54±0.14 | 81.34±0.23 | 81.87±0.17 |
iid | dir1.0 | dir0.1 |
---|---|---|
learning_rate: [0.001, 0.005, 0.01, 0.05, 0.1]
proportion: 0.2
batch_size: 50
weight_decay: 1e-3
lr_scheduler: 0
learning_rate_decay: 0.9998
num_rounds: 2000
num_epochs: [5]
clip_grad: 10
early_stop: 500
train_holdout: 0.2
local_test: True
no_log_console: True
Algorithm | model | iid | dir1.0 | dir0.1 |
---|---|---|---|---|
fedavg | CNN | lr=0.1 | lr=0.1 | lr=0.1 |
fedprox | CNN | lr=0.1, μ=0.001 | lr=0.1, μ=0.001 | lr=0.05, μ=0.0001 |
scaffold | CNN | lr=0.1 | lr=0.1 | lr=0.1 |
feddyn | CNN | lr=0.001, α=0.1 | lr=0.1, α=0.1 | lr=0.1, α=0.03 |
moon | CNN | lr=0.1, μ=0.1 | lr=0.1, μ=0.1 | lr=0.05, μ=0.1 |
fedavg | ResNet18 | lr=0.1 | lr=0.05 | lr=0.05 |
fedprox | ResNet18 | lr=0.1, μ=0.0001 | lr=0.05, μ=0.01 | lr=0.05, μ=0.1 |
scaffold | ResNet18 | lr=0.1 | lr=0.1 | lr=0.1 |
feddyn | ResNet18 | lr=0.1, α=0.1 | lr=0.05, α=0.1 | lr=0.05, α=0.1 |
moon | ResNet18 | lr=0.1, μ=10.0 | lr=0.05, μ=0.1 | lr=0.05, μ=0.1 |
fedavg | ResNet18-GN | lr=0.1 | lr=0.1 | lr=0.01 |
seed: [2,4388,15,333,967] # results are averaged over five random seeds
proportion: 0.2
Global Test
Algorithm | model | iid | dir1.0 | dir0.1 |
---|---|---|---|---|
fedavg | CNN | 41.33±0.30 | 37.93±0.64 | 22.50±0.52 |
fedprox | CNN | 41.27±0.31 | 37.79±0.27 | 22.20±0.16 |
scaffold | CNN | 49.85±0.22 | 41.08±0.39 | 18.56±0.50 |
feddyn | CNN | 52.64±0.15 | 40.19±0.36 | 26.20±0.44 |
moon | CNN | 41.49±0.40 | 37.28±0.37 | 21.09±0.32 |
fedavg | ResNet18 | 72.91±0.33 | 49.11±0.56 | 16.63±0.63 |
fedprox | ResNet18 | 73.26±0.29 | 48.42±1.00 | 16.45±0.19 |
scaffold | ResNet18 | 76.35±0.22 | 50.24±0.56 | 16.40±0.87 |
feddyn | ResNet18 | 75.43±0.17 | 50.23±0.61 | 17.46±0.62 |
moon | ResNet18 | 74.95±0.22 | 48.94±0.55 | 17.25±0.67 |
fedavg | ResNet18-GN | 52.71±0.68 | 34.20±0.83 | 19.45±0.53 |
Local Test
Algorithm | model | iid | dir1.0 | dir0.1 |
---|---|---|---|---|
fedavg | CNN | 41.04±0.34 | 36.94±0.52 | 22.21±0.51 |
fedprox | CNN | 40.62±0.35 | 37.00±0.50 | 21.77±0.21 |
scaffold | CNN | 49.94±0.22 | 39.70±0.31 | 18.58±0.61 |
feddyn | CNN | 52.48±0.49 | 38.92±0.37 | 26.08±0.15 |
moon | CNN | 40.91±0.30 | 36.22±0.34 | 20.67±0.26 |
fedavg | ResNet18 | 73.72±0.33 | 48.75±1.08 | 16.56±0.48 |
fedprox | ResNet18 | 73.70±0.27 | 47.72±1.04 | 16.79±0.30 |
scaffold | ResNet18 | 76.60±0.28 | 50.31±0.78 | 16.80±0.89 |
feddyn | ResNet18 | 75.53±0.40 | 50.39±0.61 | 17.96±0.65 |
moon | ResNet18 | 75.20±0.24 | 49.11±0.37 | 17.23±1.00 |
fedavg | ResNet18-GN | 51.87±0.62 | 33.02±1.11 | 19.20±0.22 |
iid | dir1.0 | dir0.1 |
---|---|---|
learning_rate: [0.001, 0.005, 0.01, 0.05, 0.1]
proportion: 0.2
batch_size: 50
weight_decay: 1e-3
lr_scheduler: 0
learning_rate_decay: 0.9998
num_rounds: 2000
num_epochs: [5]
clip_grad: 10
early_stop: 500
train_holdout: 0.2
local_test: True
no_log_console: True
Algorithm | model | iid | dir1.0 | dir0.1 |
---|---|---|---|---|
fedavg | ResNet18 | lr=0.1 | lr=0.05 | lr=0.05 |
fedprox | ResNet18 | lr=0.1, μ=0.01 | lr=0.05, μ=1.0 | lr=0.05, μ=1.0 |
scaffold | ResNet18 | lr=0.05 | lr=0.1 | lr=0.1 |
feddyn | ResNet18 | lr=0.1, α=0.1 | lr=0.05, α=0.03 | lr=0.05, α=0.03 |
moon | ResNet18 | lr=0.1, μ=1.0 | lr=0.05, μ=0.1 | lr=0.05, μ=0.1 |
seed: [2,4388,15,333,967] # results are averaged over five random seeds
proportion: 0.2
Global Test
Algorithm | model | iid | dir1.0 | dir0.1 |
---|---|---|---|---|
fedavg | ResNet18 | 58.89±0.34 | 19.10±0.51 | 6.42±0.17 |
fedprox | ResNet18 | 58.61±0.26 | 27.77±0.65 | 8.84±0.19 |
scaffold | ResNet18 | 60.02±0.33 | 24.89±0.74 | 8.54±0.79 |
feddyn | ResNet18 | 61.22±0.41 | 27.52±0.61 | 8.13±0.62 |
moon | ResNet18 | 58.70±0.26 | 22.55±0.47 | 6.78±0.22 |
Local Test
Algorithm | model | iid | dir1.0 | dir0.1 |
---|---|---|---|---|
fedavg | ResNet18 | 59.16±0.19 | 19.06±0.26 | 5.99±0.34 |
fedprox | ResNet18 | 59.33±0.20 | 28.03±0.14 | 8.38±0.16 |
scaffold | ResNet18 | 60.91±0.31 | 25.37±0.81 | 8.74±0.61 |
feddyn | ResNet18 | 62.07±0.20 | 27.25±0.68 | 7.75±0.59 |
moon | ResNet18 | 59.30±0.23 | 22.80±0.38 | 6.33±0.28 |
iid | dir5.0 | dir2.0 | dir1.0 | dir0.1 |
---|---|---|---|---|
learning_rate: [0.001, 0.005, 0.01, 0.05, 0.1]
proportion: 0.2
batch_size: 50
weight_decay: 1e-3
lr_scheduler: 0
learning_rate_decay: 0.9998
num_rounds: 1000
num_epochs: [5]
clip_grad: 10
early_stop: 250
train_holdout: 0.2
local_test: True
no_log_console: True
Algorithm | model | iid | dir5.0 | dir2.0 | dir1.0 | dir0.1 |
---|---|---|---|---|---|---|
fedavg | CNN | lr=0.1 | lr=0.05 | lr=0.05 | lr=0.05 | lr=0.05 |
fedprox | CNN | lr=0.1, μ=0.0001 | lr=0.05, μ=0.001 | lr=0.1, μ=1.0 | lr=0.1, μ=1.0 | lr=0.05, μ=0.01 |
scaffold | CNN | lr=0.01 | lr=0.01 | lr=0.01 | lr=0.01 | lr=0.01 |
feddyn | CNN | lr=0.1, α=0.1 | lr=0.1, α=0.1 | lr=0.1, α=0.1 | lr=0.05, α=0.1 | lr=0.05, α=0.1 |
moon | CNN | lr=0.01, μ=1.0 | lr=0.05, μ=0.1 | lr=0.05, μ=1.0 | lr=0.05, μ=0.1 | lr=0.1, μ=0.1 |
seed: [2,4388,15,333,967] # results are averaged over five random seeds
proportion: 0.2
Global Test
Algorithm | model | iid | dir5.0 | dir2.0 | dir1.0 | dir0.1 |
---|---|---|---|---|---|---|
fedavg | CNN | 99.20±0.00 | 99.05±0.01 | 99.01±0.05 | 98.87±0.07 | 98.31±0.06 |
fedprox | CNN | 99.22±0.03 | 99.05±0.03 | 99.06±0.04 | 98.90±0.02 | 98.36±0.07 |
scaffold | CNN | 99.11±0.02 | 99.13±0.02 | 99.15±0.02 | 99.20±0.03 | 99.11±0.02 |
feddyn | CNN | 99.37±0.01 | 99.23±0.02 | 99.25±0.03 | 99.20±0.04 | 98.89±0.04 |
moon | CNN | 99.07±0.04 | 99.05±0.04 | 99.10±0.08 | 99.00±0.05 | 98.43±0.07 |
Local Test
Algorithm | model | iid | dir5.0 | dir2.0 | dir1.0 | dir0.1 |
---|---|---|---|---|---|---|
fedavg | CNN | 98.87±0.03 | 98.97±0.03 | 99.07±0.07 | 98.67±0.06 | 97.96±0.09 |
fedprox | CNN | 98.89±0.05 | 98.91±0.07 | 99.02±0.04 | 98.75±0.03 | 97.97±0.06 |
scaffold | CNN | 98.97±0.02 | 98.96±0.02 | 99.15±0.02 | 98.87±0.05 | 98.90±0.05 |
feddyn | CNN | 99.10±0.02 | 99.11±0.02 | 99.35±0.03 | 98.99±0.02 | 98.66±0.06 |
moon | CNN | 98.79±0.04 | 98.89±0.02 | 99.12±0.01 | 98.73±0.02 | 98.08±0.13 |
Task | Algorithm | model | p=0.1 | p=0.2 | p=0.5 | p=1.0 |
---|---|---|---|---|---|---|
iid | fedavg | CNN | 99.20±0.03 | 99.20±0.00 | 99.21±0.02 | 99.22±0.00 |
dir5.0 | fedavg | CNN | 99.00±0.03 | 99.05±0.01 | 99.04±0.01 | 99.05±0.01 |
dir2.0 | fedavg | CNN | 99.01±0.04 | 99.01±0.05 | 99.04±0.02 | 99.05±0.01 |
dir1.0 | fedavg | CNN | 98.94±0.01 | 98.87±0.07 | 98.90±0.03 | 98.94±0.00 |
dir0.1 | fedavg | CNN | 98.27±0.08 | 98.31±0.06 | 98.32±0.04 | 98.33±0.02 |
client-id |
---|
learning_rate: [0.001, 0.005, 0.01, 0.05, 0.1]
batch_size: 50
weight_decay: 1e-3
lr_scheduler: 0
learning_rate_decay: 0.9998
num_rounds: 2000
num_epochs: 5
clip_grad: 10
proportion: 0.2
early_stop: 400
train_holdout: 0.2
local_test: True
no_log_console: True
log_file: True
Algorithm | model | client-id |
---|---|---|
fedavg | CNN | lr=0.1 |
fedprox | CNN | lr=0.1, μ=0.0001 |
scaffold | CNN | lr=0.05 |
feddyn | CNN | lr=0.05, α=0.03 |
moon | CNN | lr=0.1, μ=0.1 |
seed: [2,4388,15,333,967] # results are averaged over five random seeds
Global Test
Algorithm | model | client-id |
---|---|---|
fedavg | CNN | 86.25±0.04 |
fedprox | CNN | 86.24±0.02 |
scaffold | CNN | 86.92±0.07 |
feddyn | CNN | 86.90±0.05 |
moon | CNN | 86.29±0.01 |
Local Test
Algorithm | model | client-id |
---|---|---|
fedavg | CNN | 84.91±0.05 |
fedprox | CNN | 84.76±0.06 |
scaffold | CNN | 87.39±0.08 |
feddyn | CNN | 87.30±0.08 |
moon | CNN | 86.63±0.05 |
iid | dir1.0 | dir0.1 |
---|---|---|
learning_rate: [0.1, 0.5, 1.0, 5.0, 10.0]
batch_size: 50
weight_decay: 1e-4
momentum: 0.9
lr_scheduler: 0
learning_rate_decay: 0.998
num_rounds: 600
num_epochs: 1
clip_grad: 10
proportion: 0.2
early_stop: 125
train_holdout: 0.2
local_test: True
no_log_console: True
log_file: True
Algorithm | model | iid | dir1.0 | dir0.1 |
---|---|---|---|---|
fedavg | EmbeddingBag+Linear | lr=1.0 | lr=1.0 | lr=0.5 |
fedprox | EmbeddingBag+Linear | lr=1.0, μ=0.01 | lr=1.0, μ=0.01 | lr=0.5, μ=0.0001 |
scaffold | EmbeddingBag+Linear | lr=1.0 | lr=1.0 | lr=0.5 |
feddyn | EmbeddingBag+Linear | lr=0.1, α=0.01 | lr=0.5, α=0.01 | lr=0.5, α=0.01 |
moon | EmbeddingBag+Linear | lr=1.0, μ=10.0 | lr=0.5, μ=10.0 | lr=0.5, μ=0.1 |
seed: [2,4388,15,333,967] # results are averaged over five random seeds
proportion: 0.2
Global Test
Algorithm | model | iid | dir1.0 | dir0.1 |
---|---|---|---|---|
fedavg | EmbeddingBag+Linear | 90.93±0.06 | 89.37±0.14 | 87.87±0.15 |
fedprox | EmbeddingBag+Linear | 90.94±0.11 | 89.39±0.12 | 87.97±0.11 |
scaffold | EmbeddingBag+Linear | 90.28±0.28 | 87.98±0.65 | 85.96±0.45 |
feddyn | EmbeddingBag+Linear | 91.04±0.06 | 91.02±0.02 | 91.14±0.04 |
moon | EmbeddingBag+Linear | 91.54±0.11 | 90.28±0.07 | 87.61±0.13 |
Local Test
Algorithm | model | iid | dir1.0 | dir0.1 |
---|---|---|---|---|
fedavg | EmbeddingBag+Linear | 91.53±0.03 | 89.84±0.08 | 88.35±0.16 |
fedprox | EmbeddingBag+Linear | 91.50±0.01 | 89.87±0.06 | 88.30±0.20 |
scaffold | EmbeddingBag+Linear | 90.58±0.50 | 88.31±0.69 | 86.50±0.49 |
feddyn | EmbeddingBag+Linear | 91.59±0.04 | 91.11±0.01 | 91.04±0.01 |
moon | EmbeddingBag+Linear | 92.03±0.05 | 90.64±0.04 | 88.08±0.19 |
domain |
---|
learning_rate: [0.001, 0.005, 0.01, 0.05, 0.1]
batch_size: 50
weight_decay: 1e-3
lr_scheduler: 0
learning_rate_decay: 0.9998
num_rounds: 500
num_epochs: 1
clip_grad: 10
sample: full
proportion: 1.0
early_stop: 100
train_holdout: 0.2
local_test: True
no_log_console: True
log_file: True
Algorithm | model | domain |
---|---|---|
standalone | AlexNet | lr=0.1 |
fedavg | AlexNet | lr=0.1 |
fedprox | AlexNet | lr=0.1, μ=0.1 |
scaffold | AlexNet | lr=0.1 |
feddyn | AlexNet | lr=0.01, α=0.1 |
moon | AlexNet | lr=0.05, μ=1.0 |
seed: [2,4388,15,333,967] # results are averaged over five random seeds
Local Test
Algorithm | model | Mean | Weighted-Mean | ||||
---|---|---|---|---|---|---|---|
standalone | AlexNet | 47.32±2.82 | 72.42±3.73 | 50.67±11.62 | 62.76±25.00 | 58.29±7.92 | 58.82±5.18 |
fedavg | AlexNet | 71.25±1.99 | 88.00±0.84 | 80.00±0.00 | 84.14±4.14 | 80.85±1.37 | 79.63±1.11 |
fedprox | AlexNet | 72.68±2.37 | 72.68±2.37 | 82.67±3.27 | 93.10±3.08 | 83.90±1.66 | 81.15±1.56 |
scaffold | AlexNet | 70.54±2.33 | 86.32±1.76 | 88.00±4.99 | 93.79±3.38 | 84.66±2.23 | 80.30±1.79 |
feddyn | AlexNet | 73.75±2.91 | 84.00±1.68 | 88.00±4.99 | 95.17±1.69 | 85.23±1.96 | 81.00±1.79 |
moon | AlexNet | 71.61±2.55 | 87.16±1.23 | 78.67±2.67 | 88.97±3.38 | 81.60±1.06 | 79.95±1.27 |
domain |
---|
learning_rate: [0.001, 0.005, 0.01, 0.05, 0.1]
batch_size: 50
weight_decay: 1e-3
lr_scheduler: 0
learning_rate_decay: 0.9998
num_rounds: 500
num_epochs: 1
clip_grad: 10
sample: full
proportion: 1.0
early_stop: 100
train_holdout: 0.2
local_test: True
no_log_console: True
log_file: True
Algorithm | model | domain |
---|---|---|
standalone | AlexNet | lr=0.05 |
fedavg | AlexNet | lr=0.1 |
fedprox | AlexNet | lr=0.1, μ=0.01 |
scaffold | AlexNet | lr=0.1 |
feddyn | AlexNet | lr=0.05, α=0.1 |
moon | AlexNet | lr=0.1, μ=0.1 |
seed: [2,4388,15,333,967] # results are averaged over five random seeds
Local Test
Algorithm | model | Clipart | Infograph | Painting | Quickdraw | Real | Sketch | Mean | Weighted-Mean |
---|---|---|---|---|---|---|---|---|---|
standalone | AlexNet | 52.84±0.61 | 24.43±0.49 | 44.99±0.94 | 81.23±0.47 | 65.69±0.48 | 48.68±1.24 | 52.98±0.33 | 57.12±0.26 |
fedavg | AlexNet | 74.54±0.96 | 38.42±0.63 | 64.56±0.60 | 78.44±0.92 | 74.67±0.32 | 72.76±0.92 | 67.23±0.20 | 68.90±0.20 |
fedprox | AlexNet | 75.46±1.34 | 38.51±0.88 | 64.56±1.26 | 77.39±1.82 | 74.04±0.57 | 73.28±1.16 | 67.20±0.63 | 68.67±0.66 |
scaffold | AlexNet | 78.25±0.36 | 40.77±0.41 | 66.70±1.39 | 78.77±0.90 | 75.12±0.92 | 77.09±0.69 | 69.45±0.41 | 70.65±0.44 |
feddyn | AlexNet | 78.55±1.04 | 39.82±0.71 | 67.18±1.20 | 78.23±0.30 | 74.34±0.67 | 75.40±1.32 | 68.92±0.22 | 70.09±0.17 |
moon | AlexNet | 72.77±0.58 | 38.46±1.04 | 63.38±0.74 | 79.75±1.40 | 73.83±0.48 | 70.66±0.45 | 66.48±0.54 | 68.35±0.58 |
fedbn | AlexNet | 77.08±0.74 | 40.22±1.67 | 69.26±0.40 | 88.83±0.32 | 82.58±0.18 | 75.89±0.75 | 72.31±0.28 | 74.88±0.21 |
domain |
---|
learning_rate: [0.001, 0.01, 0.05, 0.1, 0.5]
batch_size: 50
weight_decay: 1e-3
lr_scheduler: 0
learning_rate_decay: 0.9998
num_rounds: 500
num_epochs: 5
clip_grad: 10
proportion: 1.0
early_stop: 100
train_holdout: 0.2
local_test: True
no_log_console: True
log_file: True
Algorithm | model | domain |
---|---|---|
standalone | AlexNet | lr=0.1 |
fedavg | AlexNet | lr=0.05 |
fedprox | AlexNet | lr=0.05, μ=0.0001 |
scaffold | AlexNet | lr=0.1 |
feddyn | AlexNet | lr=0.1, α=0.03 |
moon | AlexNet | lr=0.05, μ=1.0 |
Local Test
Algorithm | model | Mean | Weighted-Mean | ||||
---|---|---|---|---|---|---|---|
standalone | AlexNet | 33.04±2.93 | 59.49±1.90 | 65.75±2.25 | 76.94±1.39 | 58.80±1.40 | 61.97±1.38 |
fedavg | AlexNet | 61.47±1.47 | 84.53±2.07 | 71.14±3.54 | 82.65±1.56 | 74.95±0.73 | 76.83±0.78 |
fedprox | AlexNet | 65.78±2.55 | 81.88±0.96 | 76.05±2.18 | 80.97±1.03 | 76.17±0.78 | 77.25±0.46 |
scaffold | AlexNet | 63.82±2.07 | 82.91±0.85 | 76.53±2.47 | 82.81±1.71 | 76.52±0.48 | 77.89±0.30 |
feddyn | AlexNet | 63.53±2.31 | 83.08±0.44 | 76.65±1.37 | 81.12±1.29 | 76.09±1.10 | 77.23±1.07 |
moon | AlexNet | 62.16±2.04 | 83.33±3.21 | 72.93±2.38 | 83.52±1.67 | 75.49±0.67 | 77.33±0.82 |
domain |
---|
learning_rate: [0.001, 0.005, 0.01, 0.05, 0.1]
batch_size: 50
weight_decay: 1e-3
lr_scheduler: 0
learning_rate_decay: 0.9998
num_rounds: 200
num_epochs: 5
clip_grad: 10
sample: full
proportion: 1.0
early_stop: 50
train_holdout: 0.2
local_test: True
no_log_console: True
log_file: True
Algorithm | model | dataset |
---|---|---|
standalone | AlexNet | lr=0.1 |
fedavg | AlexNet | lr=0.05 |
fedprox | AlexNet | lr=0.05, μ=0.1 |
scaffold | AlexNet | lr=0.05 |
feddyn | AlexNet | lr=0.1, α=0.1 |
moon | AlexNet | lr=0.05, μ=0.1 |
Local Test
Algorithm | model | Mean | Weighted-Mean | |||||
---|---|---|---|---|---|---|---|---|
standalone | AlexNet | 99.59±0.06 | 18.03±0.00 | 99.48±0.04 | 98.77±0.04 | 98.39±0.06 | 82.85±0.02 | 82.85±0.02 |
fedavg | AlexNet | 99.54±0.10 | 96.50±0.08 | 99.75±0.03 | 99.24±0.08 | 97.88±0.20 | 98.58±0.03 | 98.58±0.03 |
fedprox | AlexNet | 99.61±0.05 | 96.67±0.16 | 99.79±0.02 | 99.30±0.04 | 98.83±0.04 | 98.84±0.04 | 98.84±0.04 |
scaffold | AlexNet | 99.62±0.03 | 97.51±0.10 | 99.84±0.02 | 99.44±0.04 | 98.86±0.07 | 99.05±0.04 | 99.05±0.04 |
feddyn | AlexNet | 99.47±0.22 | 96.82±0.46 | 99.77±0.03 | 99.39±0.04 | 98.89±0.09 | 98.87±0.07 | 98.87±0.07 |
moon | AlexNet | 99.57±0.08 | 96.54±0.20 | 99.77±0.03 | 99.27±0.03 | 97.94±0.25 | 98.62±0.07 | 98.62±0.07 |
domain |
---|
learning_rate: [0.00005, 0.0001, 0.0005, 0.001, 0.005]
batch_size: 16
weight_decay: 1e-4
lr_scheduler: 0
learning_rate_decay: 0.9998
num_rounds: 500
num_epochs: 1
clip_grad: 10
proportion: 1.0
early_stop: 100
train_holdout: 0.2
local_test: True
optimizer: Adam
no_log_console: True
log_file: True
Algorithm | model | domain |
---|---|---|
standalone | UNet | lr=0.0005 |
fedavg | UNet | lr=0.0001 |
fedprox | UNet | lr=0.0001, μ=0.0001 |
scaffold | UNet | lr=0.0001 |
feddyn | UNet | lr=0.00005, α=0.1 |
moon | UNet | lr=0.0001, μ=0.1 |
Algorithm | model | BMC | UCL | BIDMC | RUNMC | HK | I2CVB | Mean | Weighted-Mean |
---|---|---|---|---|---|---|---|---|---|
standalone | UNet | 91.54±0.24 | 79.77±1.65 | 91.29±0.69 | 91.63±0.83 | 92.78±0.60 | 94.02±0.65 | 90.17±0.47 | 91.15±0.41 |
fedavg | UNet | 91.09±0.69 | 90.74±0.99 | 93.02±0.69 | 94.32±0.39 | 94.84±0.54 | 95.98±0.10 | 93.33±0.12 | 93.59±0.13 |
fedprox | UNet | 91.94±0.67 | 90.83±0.70 | 93.27±0.29 | 94.87±0.19 | 94.84±0.29 | 95.67±0.32 | 93.57±0.23 | 93.86±0.24 |
scaffold | UNet | 56.16±0.09 | 49.23±0.03 | 51.56±0.02 | 54.69±0.06 | 53.50±0.05 | 46.92±0.07 | 52.01±0.02 | 51.98±0.02 |
feddyn | UNet | 91.41±1.14 | 90.96±1.49 | 91.89±1.49 | 94.28±0.38 | 93.93±0.85 | 93.83±1.00 | 92.72±0.28 | 92.90±0.25 |
moon | UNet | 91.93±0.36 | 89.85±1.10 | 92.39±0.63 | 94.30±0.43 | 94.06±0.29 | 96.17±0.28 | 93.12±0.23 | 93.57±0.20 |
fedbn | UNet | 95.47±0.23 | 91.13±0.81 | 93.41±0.30 | 93.89±0.54 | 94.56±0.62 | 96.65±0.11 | 94.18±0.23 | 94.64±0.19 |
hospital |
---|
hospital |
---|
learning_rate: [0.00005, 0.0001, 0.0005, 0.001, 0.005]
batch_size: 16
weight_decay: 1e-4
lr_scheduler: 0
learning_rate_decay: 0.9998
num_rounds: 500
num_epochs: 1
clip_grad: 10
proportion: 1.0
early_stop: 50
train_holdout: 0.2
local_test: True
optimizer: Adam
no_log_console: True
log_file: True
Algorithm | model | domain |
---|---|---|
standalone | UNet | lr=0.001 |
fedavg | UNet | lr=0.001 |
fedprox | UNet | lr=0.001, μ=0.0001 |
scaffold | UNet | lr=0.001 |
feddyn | UNet | lr=0.0005, α=0.01 |
moon | UNet | lr=0.0005, μ=0.1 |
Algorithm | model | Mean | Weighted-Mean | ||||
---|---|---|---|---|---|---|---|
standalone | AlexNet | 81.44±1.92 | 74.51±1.03 | 82.92±2.03 | 74.42±0.94 | 78.32±1.08 | 78.32±1.09 |
fedavg | AlexNet | 76.60±4.68 | 60.69±4.27 | 81.42±5.98 | 77.87±2.23 | 74.15±2.91 | 77.05±3.32 |
fedprox | AlexNet | 82.64±1.02 | 66.90±2.62 | 78.45±4.51 | 74.38±3.77 | 75.59±2.44 | 75.61±3.02 |
scaffold | AlexNet | 54.24±3.17 | 49.25±0.65 | 72.92±0.80 | 65.51±1.85 | 60.48±0.88 | 65.74±0.58 |
feddyn | AlexNet | 82.58±1.90 | 67.23±2.81 | 85.21±5.53 | 78.61±4.88 | 78.41±3.28 | 80.09±4.41 |
moon | AlexNet | 80.61±3.66 | 66.55±3.48 | 87.23±1.48 | 79.72±3.03 | 78.53±1.35 | 81.15±1.36 |
hospital |
---|
client-id |
---|
learning_rate: [0.001, 0.005, 0.01, 0.05, 0.1]
batch_size: 50
weight_decay: 1e-3
lr_scheduler: 0
learning_rate_decay: 0.998
num_rounds: 2000
num_epochs: 1
clip_grad: 10
proportion: 0.05
early_stop: 250
train_holdout: 0.0
no_log_console: True
log_file: True
Algorithm | model | client-id |
---|---|---|
fedavg | M5 | lr=1.0 |
fedprox | M5 | lr=1.0, mu=0.01 |
scaffold | M5 | lr=1.0 |
feddyn | M5 | lr=0.1, α=0.001 |
moon | M5 | lr=1.0, mu=0.1 |
seed: [2,4388,15,333,967] # results are averaged over five random seeds
Global Test
Algorithm | model | client-id |
---|---|---|
fedavg | M5 | 69.11±0.91 |
fedprox | M5 | 69.30±0.87 |
scaffold | M5 | 64.40±0.42 |
feddyn | M5 | 60.65±0.76 |
moon | M5 | 69.08±0.86 |
client-id |
---|
learning_rate: [0.1, 0.5, 1.0, 5.0, 10.0]
batch_size: 50
weight_decay: 5e-4
lr_scheduler: 0
learning_rate_decay: 0.9998
num_rounds: 200
num_epochs: 5
clip_grad: 10
proportion: 0.1
early_stop: 100
train_holdout: 0.2
local_test: True
no_log_console: True
log_file: True
Algorithm | model | client-id |
---|---|---|
fedavg | LSTM | lr=0.1 |
fedprox | LSTM | lr=0.1, μ=0.0001 |
scaffold | LSTM | lr=0.5 |
seed: [2,4388,15,333,967] # results are averaged over five random seeds
Global Test
Algorithm | model | client-id |
---|---|---|
fedavg | LSTM | 52.85±0.06 |
fedprox | LSTM | 53.09±0.06 |
scaffold | LSTM | 49.93±0.09 |
Local Test
Algorithm | model | client-id |
---|---|---|
fedavg | LSTM | 52.76±0.17 |
fedprox | LSTM | 53.31±0.04 |
scaffold | LSTM | 50.01±0.14 |