FLGo-Bench

October 11, 2024 · View on GitHub

Produce results of federated algorithms on various benchmarks

Citation

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}
}

Usage

  • 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
NameTypeDesc.
modelstrthe file name in the dictionary model/ that denotes a legal model in FLGo
load_modestrbe one of ['', 'mmap', 'mem'], which respectively denotes DefaultIO, MemmapIO, and InMemory Dataset Loading
max_pdevintthe maximum number of processes on each gpu device
available_intervalintthe time interval (s) to check whether a device is available
put_intervalintthe time interval (s) to put one process into device
seqboolwhether to run each process in sequencial
train_parallelintthe number of parallel client local training processes, default is 0
test_parallelboolwhether to use data parallel when evaluating model
use_cacheboolwhether 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

Analysis

# 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 

Algorithmic Configuration

We search the algorithmic hyper-parameter for each algorihtm according to the table below

AlgorithmHyper-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.

Experimental Results

Nevigation

CIFAR10

100 Clients

iiddir5.0dir2.0dir1.0dir0.1
iid_imgd5_imgd2_imgd1_imgd0_img

Configuration

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
Algorithmmodeliiddir5.0dir2.0dir1.0dir0.1
fedavgCNNlr=0.1lr=0.1lr=0.05lr=0.1lr=0.1
fedproxCNNlr=0.05, μ=0.001lr=0.1, μ=0.01lr=0.1, μ=0.001lr=0.1, μ=0.01lr=0.05, μ=0.001
scaffoldCNNlr=0.1lr=0.1lr=0.1lr=0.1lr=0.1
moonCNNlr=0.1, μ=0.1lr=0.1, μ=0.1lr=0.05, μ=0.1lr=0.1, μ=0.1lr=0.1, μ=0.1
feddynCNNlr=0.1, α=0.1lr=0.1, α=0.1lr=0.05, α=0.1lr=0.1, α=0.03lr=0.05, α=0.03
fedavgResNet18lr=0.1lr=0.1lr=0.1lr=0.05lr=0.1
fedproxResNet18lr=0.05, μ=0.001lr=0.1, μ=0.1lr=0.1, μ=0.001lr=0.05, μ=0.0001lr=0.05, μ=0.001
scaffoldResNet18lr=0.1lr=0.1lr=0.1lr=0.1lr=0.1
moonResNet18lr=0.1, μ=0.1lr=0.05, μ=0.1lr=0.05, μ=0.1lr=0.05, μ=1.0lr=0.05, μ=0.1
feddynResNet18lr=0.1, α=0.1lr=0.1, α=0.1lr=0.1, α=0.1lr=0.1, α=0.1lr=0.1, α=0.1
fedavgResNet18-GNlr=0.1lr=0.1lr=0.1lr=0.1lr=0.1

Main Results

seed: [2,4388,15,333,967] # results are averaged over five random seeds
proportion: 0.2

Global Test

Algorithmmodeliiddir5.0dir2.0dir1.0dir0.1
fedavgCNN81.54±0.1479.95±0.2278.00±0.2476.54±0.3969.87±0.50
fedproxCNN80.83±0.2079.86±0.3078.39±0.2676.58±0.5069.41±0.33
scaffoldCNN85.08±0.2183.84±0.2382.15±0.2980.42±0.2165.06±0.51
moonCNN80.88±0.2779.63±0.2077.21±0.3375.67±0.2662.44±1.10
feddynCNN85.09±0.2283.65±0.0981.54±0.3080.26±0.4070.82±0.50
fedavgResNet1894.07±0.1293.56±0.1892.59±0.0991.53±0.1178.79±0.56
fedproxResNet1893.84±0.2193.55±0.0592.40±0.2191.46±0.1977.68±1.08
scaffoldResNet1895.09±0.1294.67±0.1193.86±0.1392.90±0.1879.82±0.51
moonResNet1894.14±0.0893.63±0.1892.51±0.1191.34±0.2177.95±0.57
feddynResNet1895.00±0.1393.87±0.0892.98±0.2392.72±0.2179.76±0.73
fedavgResNet18-GN91.25±0.2389.93±0.2488.21±0.4086.42±0.7366.39±1.66

Local Test

Algorithmmodeliiddir5.0dir2.0dir1.0dir0.1
fedavgCNN80.98±0.3979.97±0.1277.43±0.1277.03±0.2970.02±0.70
fedproxCNN80.68±0.1879.81±0.4177.80±0.1377.05±0.2069.72±0.79
scaffoldCNN85.22±0.3384.23±0.4481.90±0.2880.23±0.1965.00±0.66
moonCNN80.26±0.3879.29±0.2976.81±0.5876.12±0.4562.26±1.09
feddynCNN85.25±0.2683.99±0.1781.76±0.1780.48±0.4271.69±0.29
fedavgResNet1894.58±0.0893.54±0.1193.12±0.2391.67±0.2579.46±0.77
fedproxResNet1894.17±0.3093.44±0.1892.85±0.1891.37±0.1378.11±1.32
scaffoldResNet1895.51±0.1394.89±0.1694.28±0.1693.18±0.1580.39±0.54
moonResNet1894.73±0.1793.67±0.2392.90±0.1891.63±0.3278.77±0.78
feddynResNet1895.16±0.2094.19±0.1393.41±0.1992.83±0.2680.70±1.02
fedavgResNet18-GN91.69±0.1990.04±0.2687.84±0.4886.52±0.6966.98±1.59

Impact of Sampling Ratio

TaskAlgorithmmodelp=0.1p=0.2p=0.5p=1.0
iidfedavgCNN81.70±0.3081.54±0.1481.34±0.2381.87±0.17

Impact of Local Epoch

Back

CIFAR100

100 Clients

iiddir1.0dir0.1
cifar100_iid_imgcifar100_d1_imgcifar100_d0_img

Configuration

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
Algorithmmodeliiddir1.0dir0.1
fedavgCNNlr=0.1lr=0.1lr=0.1
fedproxCNNlr=0.1, μ=0.001lr=0.1, μ=0.001lr=0.05, μ=0.0001
scaffoldCNNlr=0.1lr=0.1lr=0.1
feddynCNNlr=0.001, α=0.1lr=0.1, α=0.1lr=0.1, α=0.03
moonCNNlr=0.1, μ=0.1lr=0.1, μ=0.1lr=0.05, μ=0.1
fedavgResNet18lr=0.1lr=0.05lr=0.05
fedproxResNet18lr=0.1, μ=0.0001lr=0.05, μ=0.01lr=0.05, μ=0.1
scaffoldResNet18lr=0.1lr=0.1lr=0.1
feddynResNet18lr=0.1, α=0.1lr=0.05, α=0.1lr=0.05, α=0.1
moonResNet18lr=0.1, μ=10.0lr=0.05, μ=0.1lr=0.05, μ=0.1
fedavgResNet18-GNlr=0.1lr=0.1lr=0.01

Main Results

seed: [2,4388,15,333,967] # results are averaged over five random seeds
proportion: 0.2

Global Test

Algorithmmodeliiddir1.0dir0.1
fedavgCNN41.33±0.3037.93±0.6422.50±0.52
fedproxCNN41.27±0.3137.79±0.2722.20±0.16
scaffoldCNN49.85±0.2241.08±0.3918.56±0.50
feddynCNN52.64±0.1540.19±0.3626.20±0.44
moonCNN41.49±0.4037.28±0.3721.09±0.32
fedavgResNet1872.91±0.3349.11±0.5616.63±0.63
fedproxResNet1873.26±0.2948.42±1.0016.45±0.19
scaffoldResNet1876.35±0.2250.24±0.5616.40±0.87
feddynResNet1875.43±0.1750.23±0.6117.46±0.62
moonResNet1874.95±0.2248.94±0.5517.25±0.67
fedavgResNet18-GN52.71±0.6834.20±0.8319.45±0.53

Local Test

Algorithmmodeliiddir1.0dir0.1
fedavgCNN41.04±0.3436.94±0.5222.21±0.51
fedproxCNN40.62±0.3537.00±0.5021.77±0.21
scaffoldCNN49.94±0.2239.70±0.3118.58±0.61
feddynCNN52.48±0.4938.92±0.3726.08±0.15
moonCNN40.91±0.3036.22±0.3420.67±0.26
fedavgResNet1873.72±0.3348.75±1.0816.56±0.48
fedproxResNet1873.70±0.2747.72±1.0416.79±0.30
scaffoldResNet1876.60±0.2850.31±0.7816.80±0.89
feddynResNet1875.53±0.4050.39±0.6117.96±0.65
moonResNet1875.20±0.2449.11±0.3717.23±1.00
fedavgResNet18-GN51.87±0.6233.02±1.1119.20±0.22
Back

TinyImageNet

100 Clients

iiddir1.0dir0.1
tinyimagenet_iid_imgtinyimagenet_d_imgtinyimagenet_d0_img

Configuration

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
Algorithmmodeliiddir1.0dir0.1
fedavgResNet18lr=0.1lr=0.05lr=0.05
fedproxResNet18lr=0.1, μ=0.01lr=0.05, μ=1.0lr=0.05, μ=1.0
scaffoldResNet18lr=0.05lr=0.1lr=0.1
feddynResNet18lr=0.1, α=0.1lr=0.05, α=0.03lr=0.05, α=0.03
moonResNet18lr=0.1, μ=1.0lr=0.05, μ=0.1lr=0.05, μ=0.1

Main Results

seed: [2,4388,15,333,967] # results are averaged over five random seeds
proportion: 0.2

Global Test

Algorithmmodeliiddir1.0dir0.1
fedavgResNet1858.89±0.3419.10±0.516.42±0.17
fedproxResNet1858.61±0.2627.77±0.658.84±0.19
scaffoldResNet1860.02±0.3324.89±0.748.54±0.79
feddynResNet1861.22±0.4127.52±0.618.13±0.62
moonResNet1858.70±0.2622.55±0.476.78±0.22

Local Test

Algorithmmodeliiddir1.0dir0.1
fedavgResNet1859.16±0.1919.06±0.265.99±0.34
fedproxResNet1859.33±0.2028.03±0.148.38±0.16
scaffoldResNet1860.91±0.3125.37±0.818.74±0.61
feddynResNet1862.07±0.2027.25±0.687.75±0.59
moonResNet1859.30±0.2322.80±0.386.33±0.28
Back

MNIST

100 Clients

iiddir5.0dir2.0dir1.0dir0.1
mnistiid_imgmnistd5_imgmnistd2_imgmnistd1_imgmnistd0_img
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
Algorithmmodeliiddir5.0dir2.0dir1.0dir0.1
fedavgCNNlr=0.1lr=0.05lr=0.05lr=0.05lr=0.05
fedproxCNNlr=0.1, μ=0.0001lr=0.05, μ=0.001lr=0.1, μ=1.0lr=0.1, μ=1.0lr=0.05, μ=0.01
scaffoldCNNlr=0.01lr=0.01lr=0.01lr=0.01lr=0.01
feddynCNNlr=0.1, α=0.1lr=0.1, α=0.1lr=0.1, α=0.1lr=0.05, α=0.1lr=0.05, α=0.1
moonCNNlr=0.01, μ=1.0lr=0.05, μ=0.1lr=0.05, μ=1.0lr=0.05, μ=0.1lr=0.1, μ=0.1

Main Results

seed: [2,4388,15,333,967] # results are averaged over five random seeds
proportion: 0.2

Global Test

Algorithmmodeliiddir5.0dir2.0dir1.0dir0.1
fedavgCNN99.20±0.0099.05±0.0199.01±0.0598.87±0.0798.31±0.06
fedproxCNN99.22±0.0399.05±0.0399.06±0.0498.90±0.0298.36±0.07
scaffoldCNN99.11±0.0299.13±0.0299.15±0.0299.20±0.0399.11±0.02
feddynCNN99.37±0.0199.23±0.0299.25±0.0399.20±0.0498.89±0.04
moonCNN99.07±0.0499.05±0.0499.10±0.0899.00±0.0598.43±0.07

Local Test

Algorithmmodeliiddir5.0dir2.0dir1.0dir0.1
fedavgCNN98.87±0.0398.97±0.0399.07±0.0798.67±0.0697.96±0.09
fedproxCNN98.89±0.0598.91±0.0799.02±0.0498.75±0.0397.97±0.06
scaffoldCNN98.97±0.0298.96±0.0299.15±0.0298.87±0.0598.90±0.05
feddynCNN99.10±0.0299.11±0.0299.35±0.0398.99±0.0298.66±0.06
moonCNN98.79±0.0498.89±0.0299.12±0.0198.73±0.0298.08±0.13

Impact of Sampling Ratio

TaskAlgorithmmodelp=0.1p=0.2p=0.5p=1.0
iidfedavgCNN99.20±0.0399.20±0.0099.21±0.0299.22±0.00
dir5.0fedavgCNN99.00±0.0399.05±0.0199.04±0.0199.05±0.01
dir2.0fedavgCNN99.01±0.0499.01±0.0599.04±0.0299.05±0.01
dir1.0fedavgCNN98.94±0.0198.87±0.0798.90±0.0398.94±0.00
dir0.1fedavgCNN98.27±0.0898.31±0.0698.32±0.0498.33±0.02

Impact of Local Epoch

Back

FEMNIST

3597 Clients

client-id
Alt text
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
Algorithmmodelclient-id
fedavgCNNlr=0.1
fedproxCNNlr=0.1, μ=0.0001
scaffoldCNNlr=0.05
feddynCNNlr=0.05, α=0.03
moonCNNlr=0.1, μ=0.1

Main Results

seed: [2,4388,15,333,967] # results are averaged over five random seeds

Global Test

Algorithmmodelclient-id
fedavgCNN86.25±0.04
fedproxCNN86.24±0.02
scaffoldCNN86.92±0.07
feddynCNN86.90±0.05
moonCNN86.29±0.01

Local Test

Algorithmmodelclient-id
fedavgCNN84.91±0.05
fedproxCNN84.76±0.06
scaffoldCNN87.39±0.08
feddynCNN87.30±0.08
moonCNN86.63±0.05
Back

AGNEWS

100 Clients

iiddir1.0dir0.1
Alt textAlt textAlt text
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
Algorithmmodeliiddir1.0dir0.1
fedavgEmbeddingBag+Linearlr=1.0lr=1.0lr=0.5
fedproxEmbeddingBag+Linearlr=1.0, μ=0.01lr=1.0, μ=0.01lr=0.5, μ=0.0001
scaffoldEmbeddingBag+Linearlr=1.0lr=1.0lr=0.5
feddynEmbeddingBag+Linearlr=0.1, α=0.01lr=0.5, α=0.01lr=0.5, α=0.01
moonEmbeddingBag+Linearlr=1.0, μ=10.0lr=0.5, μ=10.0lr=0.5, μ=0.1

Main Results

seed: [2,4388,15,333,967] # results are averaged over five random seeds
proportion: 0.2

Global Test

Algorithmmodeliiddir1.0dir0.1
fedavgEmbeddingBag+Linear90.93±0.0689.37±0.1487.87±0.15
fedproxEmbeddingBag+Linear90.94±0.1189.39±0.1287.97±0.11
scaffoldEmbeddingBag+Linear90.28±0.2887.98±0.6585.96±0.45
feddynEmbeddingBag+Linear91.04±0.0691.02±0.0291.14±0.04
moonEmbeddingBag+Linear91.54±0.1190.28±0.0787.61±0.13

Local Test

Algorithmmodeliiddir1.0dir0.1
fedavgEmbeddingBag+Linear91.53±0.0389.84±0.0888.35±0.16
fedproxEmbeddingBag+Linear91.50±0.0189.87±0.0688.30±0.20
scaffoldEmbeddingBag+Linear90.58±0.5088.31±0.6986.50±0.49
feddynEmbeddingBag+Linear91.59±0.0491.11±0.0191.04±0.01
moonEmbeddingBag+Linear92.03±0.0590.64±0.0488.08±0.19
Back

Office-Caltech10

4 Clients

domain
Alt text
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
Algorithmmodeldomain
standaloneAlexNetlr=0.1
fedavgAlexNetlr=0.1
fedproxAlexNetlr=0.1, μ=0.1
scaffoldAlexNetlr=0.1
feddynAlexNetlr=0.01, α=0.1
moonAlexNetlr=0.05, μ=1.0

Main Results

seed: [2,4388,15,333,967] # results are averaged over five random seeds

Local Test

AlgorithmmodelClientCaltech\textbf{Client}_{Caltech}ClientAmazon\textbf{Client}_{Amazon}ClientDslr\textbf{Client}_{Dslr}ClientWebcam\textbf{Client}_{Webcam}MeanWeighted-Mean
standaloneAlexNet47.32±2.8272.42±3.7350.67±11.6262.76±25.0058.29±7.9258.82±5.18
fedavgAlexNet71.25±1.9988.00±0.8480.00±0.0084.14±4.1480.85±1.3779.63±1.11
fedproxAlexNet72.68±2.3772.68±2.3782.67±3.2793.10±3.0883.90±1.6681.15±1.56
scaffoldAlexNet70.54±2.3386.32±1.7688.00±4.9993.79±3.3884.66±2.2380.30±1.79
feddynAlexNet73.75±2.9184.00±1.6888.00±4.9995.17±1.6985.23±1.9681.00±1.79
moonAlexNet71.61±2.5587.16±1.2378.67±2.6788.97±3.3881.60±1.0679.95±1.27
Back

DomainNet

6 Clients

domain
Alt text
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
Algorithmmodeldomain
standaloneAlexNetlr=0.05
fedavgAlexNetlr=0.1
fedproxAlexNetlr=0.1, μ=0.01
scaffoldAlexNetlr=0.1
feddynAlexNetlr=0.05, α=0.1
moonAlexNetlr=0.1, μ=0.1

Main Results

seed: [2,4388,15,333,967] # results are averaged over five random seeds

Local Test

AlgorithmmodelClipartInfographPaintingQuickdrawRealSketchMeanWeighted-Mean
standaloneAlexNet52.84±0.6124.43±0.4944.99±0.9481.23±0.4765.69±0.4848.68±1.2452.98±0.3357.12±0.26
fedavgAlexNet74.54±0.9638.42±0.6364.56±0.6078.44±0.9274.67±0.3272.76±0.9267.23±0.2068.90±0.20
fedproxAlexNet75.46±1.3438.51±0.8864.56±1.2677.39±1.8274.04±0.5773.28±1.1667.20±0.6368.67±0.66
scaffoldAlexNet78.25±0.3640.77±0.4166.70±1.3978.77±0.9075.12±0.9277.09±0.6969.45±0.4170.65±0.44
feddynAlexNet78.55±1.0439.82±0.7167.18±1.2078.23±0.3074.34±0.6775.40±1.3268.92±0.2270.09±0.17
moonAlexNet72.77±0.5838.46±1.0463.38±0.7479.75±1.4073.83±0.4870.66±0.4566.48±0.5468.35±0.58
fedbnAlexNet77.08±0.7440.22±1.6769.26±0.4088.83±0.3282.58±0.1875.89±0.7572.31±0.2874.88±0.21
Back

PACS

4 Clients

domain
Alt text
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
Algorithmmodeldomain
standaloneAlexNetlr=0.1
fedavgAlexNetlr=0.05
fedproxAlexNetlr=0.05, μ=0.0001
scaffoldAlexNetlr=0.1
feddynAlexNetlr=0.1, α=0.03
moonAlexNetlr=0.05, μ=1.0

Local Test

AlgorithmmodelClientArtPainting\textbf{Client}_{ArtPainting}ClientCartoon\textbf{Client}_{Cartoon}ClientPhoto\textbf{Client}_{Photo}ClientSketch\textbf{Client}_{Sketch}MeanWeighted-Mean
standaloneAlexNet33.04±2.9359.49±1.9065.75±2.2576.94±1.3958.80±1.4061.97±1.38
fedavgAlexNet61.47±1.4784.53±2.0771.14±3.5482.65±1.5674.95±0.7376.83±0.78
fedproxAlexNet65.78±2.5581.88±0.9676.05±2.1880.97±1.0376.17±0.7877.25±0.46
scaffoldAlexNet63.82±2.0782.91±0.8576.53±2.4782.81±1.7176.52±0.4877.89±0.30
feddynAlexNet63.53±2.3183.08±0.4476.65±1.3781.12±1.2976.09±1.1077.23±1.07
moonAlexNet62.16±2.0483.33±3.2172.93±2.3883.52±1.6775.49±0.6777.33±0.82
Back

Digits

5 Clients

domain
Alt text
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
Algorithmmodeldataset
standaloneAlexNetlr=0.1
fedavgAlexNetlr=0.05
fedproxAlexNetlr=0.05, μ=0.1
scaffoldAlexNetlr=0.05
feddynAlexNetlr=0.1, α=0.1
moonAlexNetlr=0.05, μ=0.1

Local Test

AlgorithmmodelClientUSPS\textbf{Client}_{USPS}ClientSVHN\textbf{Client}_{SVHN}ClientMNIST\textbf{Client}_{MNIST}ClientSynthetic\textbf{Client}_{Synthetic}ClientMNISTM\textbf{Client}_{MNISTM}MeanWeighted-Mean
standaloneAlexNet99.59±0.0618.03±0.0099.48±0.0498.77±0.0498.39±0.0682.85±0.0282.85±0.02
fedavgAlexNet99.54±0.1096.50±0.0899.75±0.0399.24±0.0897.88±0.2098.58±0.0398.58±0.03
fedproxAlexNet99.61±0.0596.67±0.1699.79±0.0299.30±0.0498.83±0.0498.84±0.0498.84±0.04
scaffoldAlexNet99.62±0.0397.51±0.1099.84±0.0299.44±0.0498.86±0.0799.05±0.0499.05±0.04
feddynAlexNet99.47±0.2296.82±0.4699.77±0.0399.39±0.0498.89±0.0998.87±0.0798.87±0.07
moonAlexNet99.57±0.0896.54±0.2099.77±0.0399.27±0.0397.94±0.2598.62±0.0798.62±0.07
Back

ProstateMRI

6 Clients

domain
Alt text
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
Algorithmmodeldomain
standaloneUNetlr=0.0005
fedavgUNetlr=0.0001
fedproxUNetlr=0.0001, μ=0.0001
scaffoldUNetlr=0.0001
feddynUNetlr=0.00005, α=0.1
moonUNetlr=0.0001, μ=0.1
Back
AlgorithmmodelBMCUCLBIDMCRUNMCHKI2CVBMeanWeighted-Mean
standaloneUNet91.54±0.2479.77±1.6591.29±0.6991.63±0.8392.78±0.6094.02±0.6590.17±0.4791.15±0.41
fedavgUNet91.09±0.6990.74±0.9993.02±0.6994.32±0.3994.84±0.5495.98±0.1093.33±0.1293.59±0.13
fedproxUNet91.94±0.6790.83±0.7093.27±0.2994.87±0.1994.84±0.2995.67±0.3293.57±0.2393.86±0.24
scaffoldUNet56.16±0.0949.23±0.0351.56±0.0254.69±0.0653.50±0.0546.92±0.0752.01±0.0251.98±0.02
feddynUNet91.41±1.1490.96±1.4991.89±1.4994.28±0.3893.93±0.8593.83±1.0092.72±0.2892.90±0.25
moonUNet91.93±0.3689.85±1.1092.39±0.6394.30±0.4394.06±0.2996.17±0.2893.12±0.2393.57±0.20
fedbnUNet95.47±0.2391.13±0.8193.41±0.3093.89±0.5494.56±0.6296.65±0.1194.18±0.2394.64±0.19

Camelyon17

5 Clients

hospital
Alt text
Back

Fundus

4 Clients

hospital
Alt text
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
Algorithmmodeldomain
standaloneUNetlr=0.001
fedavgUNetlr=0.001
fedproxUNetlr=0.001, μ=0.0001
scaffoldUNetlr=0.001
feddynUNetlr=0.0005, α=0.01
moonUNetlr=0.0005, μ=0.1

Local Test

AlgorithmmodelClient1\textbf{Client}_{1}Client2\textbf{Client}_{2}Client3\textbf{Client}_{3}Client4\textbf{Client}_{4}MeanWeighted-Mean
standaloneAlexNet81.44±1.9274.51±1.0382.92±2.0374.42±0.9478.32±1.0878.32±1.09
fedavgAlexNet76.60±4.6860.69±4.2781.42±5.9877.87±2.2374.15±2.9177.05±3.32
fedproxAlexNet82.64±1.0266.90±2.6278.45±4.5174.38±3.7775.59±2.4475.61±3.02
scaffoldAlexNet54.24±3.1749.25±0.6572.92±0.8065.51±1.8560.48±0.8865.74±0.58
feddynAlexNet82.58±1.9067.23±2.8185.21±5.5378.61±4.8878.41±3.2880.09±4.41
moonAlexNet80.61±3.6666.55±3.4887.23±1.4879.72±3.0378.53±1.3581.15±1.36
Back

EndoPolyp

5 Clients

hospital
Alt text
Back

SpeechCommand

2112 Clients

client-id
Alt text
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
Algorithmmodelclient-id
fedavgM5lr=1.0
fedproxM5lr=1.0, mu=0.01
scaffoldM5lr=1.0
feddynM5lr=0.1, α=0.001
moonM5lr=1.0, mu=0.1

Main Results

seed: [2,4388,15,333,967] # results are averaged over five random seeds

Global Test

Algorithmmodelclient-id
fedavgM569.11±0.91
fedproxM569.30±0.87
scaffoldM564.40±0.42
feddynM560.65±0.76
moonM569.08±0.86
Back

Shakespeare

1012 Clients

client-id
Alt text
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
Algorithmmodelclient-id
fedavgLSTMlr=0.1
fedproxLSTMlr=0.1, μ=0.0001
scaffoldLSTMlr=0.5

Main Results

seed: [2,4388,15,333,967] # results are averaged over five random seeds

Global Test

Algorithmmodelclient-id
fedavgLSTM52.85±0.06
fedproxLSTM53.09±0.06
scaffoldLSTM49.93±0.09

Local Test

Algorithmmodelclient-id
fedavgLSTM52.76±0.17
fedproxLSTM53.31±0.04
scaffoldLSTM50.01±0.14
Back