Is High Local Accuracy Enough?
Geometric Consensus with Support-Adaptive Statistical Personalization for Federated Learning
Junyu Lin · Bosong Qi · Pengcheng Shi · Jiayuan Li
Wuhan University
✨ Overview · 🚀 Quick Start · 🧩 22 Methods · 💻 Full Commands · 📖 Citation
FedGRC combines geometric representation consensus with support-adaptive statistical personalization for local adaptation and full-label-space generalization.
FedGRC-Benchmark evaluates FedGRC against 21 baselines: 15 complete federated learning methods and 6 statistical classifiers, with the classifiers evaluated on 2 backbones: FedAvg, a foundational FL method, and FedYoYo, a representative novel FL method. It covers 5 heterogeneous settings across 3 datasets—CIFAR-10, CIFAR-100, and FedRS—with label spaces of 10, 15, and 100 classes. CIFAR uses 20 clients with full participation, while FedRS integrates 8 remote-sensing datasets with real-world heterogeneous distributions. For FedRS, we sample 10 of 135 clients per round to simulate realistic heterogeneous and distributed FL scenarios.
The evaluation uses 8 metrics: local personalization (Local), generalization across the full label space (Global), locally unseen-class recognition (Unseen), locally rare-class recognition (Rare), local accuracy among the lowest-performing 25% of clients (L@25), unseen-class accuracy among the lowest-performing 25% of clients (U@25), rare-class accuracy among the lowest-performing 25% of clients (R@25), and the recognition floor among the lowest-performing 25% of clients (F@25). All experiments in the paper use 3 random seeds, with the main comparison results reported as mean ± sample standard deviation.
Problem illustration. Under stronger label heterogeneity, higher local accuracy does not necessarily indicate better recognition across the full label space. Local evaluation emphasizes frequent classes and can conceal weaknesses on locally rare or unseen classes.
Proposed method overview. FedGRC uses consensus-guided representation learning (CGRL) to align class directions and regulate feature magnitudes across clients. Multilayer metric synthesis constructs a shared covariance metric, while support-adaptive shrinkage personalization (SASP) balances local and shared class means according to local sample counts, supporting local adaptation and recognition across the full label space.
Use Python 3.11 on Linux x86_64 with an NVIDIA GPU with a CUDA 11.8-compatible driver. From the repository root, install the dependencies:
python -m pip install -r requirements.txtThe FedGRC Quick Start requires the implementation, which will be released upon acceptance. For the current public release, use the baseline commands.
First download and extract the CIFAR-10 partitions. Then run a short FedGRC smoke test:
python main.py --algorithm FedGRC --dataset Cifar10/dir_a03_20c_gtest10 \
--global_rounds 1 --local_epochs 1 --join_ratio 0.1 --batch_size 64 \
--cgrl_warmup 1 --eval_gap 2 --goal 261015_quickstart --output_root resultsThis runs two aggregation steps with two clients per step, then builds MMS and SASP. Outputs are saved under results/c10d03/seed1/FedGRC_261015_quickstart/. For full training, use the FedGRC commands.
| Setting | --dataset |
Partition | Classes | Clients | Image size |
|---|---|---|---|---|---|
| c10d03 | Cifar10/dir_a03_20c_gtest10 |
Dirichlet α = 0.3 | 10 | 20 (full) | 32 × 32 |
| c10d01 | Cifar10/dir_a01_20c_gtest10 |
Dirichlet α = 0.1 | 10 | 20 (full) | 32 × 32 |
| c100d03 | Cifar100/dir_a03_20c_gtest10 |
Dirichlet α = 0.3 | 100 | 20 (full) | 32 × 32 |
| c100d01 | Cifar100/dir_a01_20c_gtest10 |
Dirichlet α = 0.1 | 100 | 20 (full) | 32 × 32 |
| fedrs | FedRS |
NIID-1 | 15 | 135 (dynamic) | 64 × 64 |
full: all clients participate each round. dynamic: 10 of 135 clients are sampled each round.
CIFAR and FedRS-Bench NIID-1 use a 75/25 local train/test split. CIFAR reserves a class-balanced global test set; FedRS uses its supplied global test set.
dataset/ folder in the repository root (FedGRC-Benchmark/dataset/) to use them directly.
All client predictors use the complete federation label space. Evaluation reports:
| Metric | Meaning |
|---|---|
| Local | Sample-weighted accuracy across clients’ local test sets |
| Global | Class-balanced accuracy on the shared global test set, averaged across client predictors |
| Unseen | Accuracy on globally tested classes absent from each client's training data |
| Rare | Accuracy on the shared global test set for each client's two least-supported present classes |
| L@25 / U@25 / R@25 | Mean accuracies of the lowest-performing 25% of clients, ranked separately by local, unseen-class, and rare-class accuracy |
| F@25 | Mean of the lowest 25% of client-level recognition floors, where each floor is the minimum defined local, unseen-class, and rare-class accuracy |
📌 Paper under review. The current public release includes the complete implementations of all 21 comparison baselines and the evaluation protocol. Upon acceptance, we will release (1) the complete FedGRC implementation and (2) model weights for all methods, enabling direct verification of the paper's main findings and supporting usability and reproducibility.
This repo builds on PFLlib, further adapting its implementations of FedAvg, FedRep, FedROD, and FedLC for this benchmark by addressing implementation issues encountered during integration and refining selected details to better align with the original papers. The remaining baselines (FedTHE, FedETF, FedFA, pFedFDA, FedVLS, FedDr+, BTFL, HPFL, FedYoYo, FedLog, pFedGM, CCVR, FedNCM, Fed3R, FedCGS, FedCOF, and GH-LDA) are reproduced and integrated with reference to their official source code or original papers. All methods, including FedGRC, are evaluated within a unified experimental platform using the same dataset partitions, heterogeneity settings, and evaluation protocol to enable objective, fair, and reproducible comparisons.
These six classifiers can use either a FedAvg or a FedYoYo backbone. Train the corresponding backbone first, then run the classifier command for the same dataset.
| Method | Implementation | Commands | Venue | Title | Reference Source |
|---|---|---|---|---|---|
| CCVR | Server · Client | Run | NeurIPS 2021 | No Fear of Heterogeneity: Classifier Calibration for Federated Learning with Non-IID Data | Original paper |
| FedNCM | Server · Client | Run | NeurIPS 2023 | Guiding The Last Layer in Federated Learning with Pre-Trained Models | GwenLegate/GuidingLastLayerFLPretrain |
| Fed3R | Server · Client | Run | ICML 2024 | Accelerating Heterogeneous Federated Learning with Closed-form Classifiers | Erosinho13/Fed3R |
| FedCGS | Server · Client | Run | AAAI 2025 | Capture Global Feature Statistics for One-Shot Federated Learning | Yuqin-G/FedCGS |
| FedCOF | Server · Client | Run | NeurIPS 2025 | Covariances for Free: Exploiting Mean Distributions for Training-free Federated Learning | dipamgoswami/FedCOF |
| GH-LDA | Server · Client | Run | ICLR 2026 | The Gaussian-Head OFL Family: One-Shot Federated Learning from Client Global Statistics | FabioTur-dev/One-Shot-FL |
The following 140 commands specify all run parameters for the five data settings. Method-specific hyperparameters are selected with reference to the original papers or official implementations to support a fair and representative comparison across datasets. Run them from the repository root.
Full commands use --goal 261015 to label the experiment batch. Outputs are saved under results/<dataset>/seed<seed>/<method>_<goal>/, with the source method prefixed when using a supplied backbone (e.g., FedAvg_HPFL_261015). Use a different goal for each batch to avoid output conflicts; existing run directories are not overwritten. When changing a backbone run’s goal, update the corresponding --backbone_ckpt paths.
FedGRC — 5 configurations
c10d03
python main.py \
--algorithm FedGRC --dataset Cifar10/dir_a03_20c_gtest10 --num_classes 10 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 200 --eval_gap 5 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 5 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --cgrl_lambda_dir 1 --cgrl_lambda_rad 1 --cgrl_beta 1 \
--cgrl_temperature 0.1 --cgrl_warmup 50 --cgrl_direction_eta 0.5 --cgrl_radial_eta 0.5 \
--cgrl_eps_r 1e-06 --cgrl_rmin 0.001 --mms_ridge_factor 0.1 --sasp_m0 64 \
--grc_feature_batch_size 256c10d01
python main.py \
--algorithm FedGRC --dataset Cifar10/dir_a01_20c_gtest10 --num_classes 10 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 200 --eval_gap 5 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 5 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --cgrl_lambda_dir 1 --cgrl_lambda_rad 1 --cgrl_beta 1 \
--cgrl_temperature 0.1 --cgrl_warmup 50 --cgrl_direction_eta 0.5 --cgrl_radial_eta 0.5 \
--cgrl_eps_r 1e-06 --cgrl_rmin 0.001 --mms_ridge_factor 0.1 --sasp_m0 64 \
--grc_feature_batch_size 256c100d03
python main.py \
--algorithm FedGRC --dataset Cifar100/dir_a03_20c_gtest10 --num_classes 100 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 300 --eval_gap 6 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 5 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --cgrl_lambda_dir 1 --cgrl_lambda_rad 1 --cgrl_beta 1 \
--cgrl_temperature 0.1 --cgrl_warmup 50 --cgrl_direction_eta 0.5 --cgrl_radial_eta 0.5 \
--cgrl_eps_r 1e-06 --cgrl_rmin 0.001 --mms_ridge_factor 0.1 --sasp_m0 64 \
--grc_feature_batch_size 256c100d01
python main.py \
--algorithm FedGRC --dataset Cifar100/dir_a01_20c_gtest10 --num_classes 100 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 300 --eval_gap 6 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 5 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --cgrl_lambda_dir 1 --cgrl_lambda_rad 1 --cgrl_beta 1 \
--cgrl_temperature 0.1 --cgrl_warmup 50 --cgrl_direction_eta 0.5 --cgrl_radial_eta 0.5 \
--cgrl_eps_r 1e-06 --cgrl_rmin 0.001 --mms_ridge_factor 0.1 --sasp_m0 64 \
--grc_feature_batch_size 256fedrs
python main.py \
--algorithm FedGRC --dataset FedRS --num_classes 15 --num_clients 135 \
--model ResNet18 --img_size 64 --device cuda --device_id 0 \
--goal 261015 --global_rounds 500 --eval_gap 100 \
--join_ratio 0.075 --batch_size 10 --local_learning_rate 0.005 --local_epochs 5 \
--momentum 0.9 --weight_decay 1e-05 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --cgrl_lambda_dir 1 --cgrl_lambda_rad 1 --cgrl_beta 1 \
--cgrl_temperature 0.1 --cgrl_warmup 50 --cgrl_direction_eta 0.5 --cgrl_radial_eta 0.5 \
--cgrl_eps_r 1e-06 --cgrl_rmin 0.001 --mms_ridge_factor 0.1 --sasp_m0 64 \
--grc_feature_batch_size 256FedAvg — 5 configurations
c10d03
python main.py \
--algorithm FedAvg --dataset Cifar10/dir_a03_20c_gtest10 --num_classes 10 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 200 --eval_gap 5 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root resultsc10d01
python main.py \
--algorithm FedAvg --dataset Cifar10/dir_a01_20c_gtest10 --num_classes 10 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 200 --eval_gap 5 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root resultsc100d03
python main.py \
--algorithm FedAvg --dataset Cifar100/dir_a03_20c_gtest10 --num_classes 100 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 300 --eval_gap 6 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root resultsc100d01
python main.py \
--algorithm FedAvg --dataset Cifar100/dir_a01_20c_gtest10 --num_classes 100 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 300 --eval_gap 6 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root resultsfedrs
python main.py \
--algorithm FedAvg --dataset FedRS --num_classes 15 --num_clients 135 \
--model ResNet18 --img_size 64 --device cuda --device_id 0 \
--goal 261015 --global_rounds 500 --eval_gap 100 \
--join_ratio 0.075 --batch_size 10 --local_learning_rate 0.005 --local_epochs 5 \
--momentum 0.9 --weight_decay 1e-05 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 10 --data_root dataset \
--output_root resultsFedRep — 5 configurations
c10d03
python main.py \
--algorithm FedRep --dataset Cifar10/dir_a03_20c_gtest10 --num_classes 10 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 200 --eval_gap 5 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --plocal_epochs 5c10d01
python main.py \
--algorithm FedRep --dataset Cifar10/dir_a01_20c_gtest10 --num_classes 10 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 200 --eval_gap 5 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --plocal_epochs 5c100d03
python main.py \
--algorithm FedRep --dataset Cifar100/dir_a03_20c_gtest10 --num_classes 100 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 300 --eval_gap 6 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --plocal_epochs 5c100d01
python main.py \
--algorithm FedRep --dataset Cifar100/dir_a01_20c_gtest10 --num_classes 100 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 300 --eval_gap 6 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --plocal_epochs 5fedrs
python main.py \
--algorithm FedRep --dataset FedRS --num_classes 15 --num_clients 135 \
--model ResNet18 --img_size 64 --device cuda --device_id 0 \
--goal 261015 --global_rounds 500 --eval_gap 20 \
--join_ratio 0.075 --batch_size 10 --local_learning_rate 0.005 --local_epochs 5 \
--momentum 0.9 --weight_decay 1e-05 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --plocal_epochs 5FedROD — 5 configurations
c10d03
python main.py \
--algorithm FedROD --dataset Cifar10/dir_a03_20c_gtest10 --num_classes 10 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 200 --eval_gap 5 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root resultsc10d01
python main.py \
--algorithm FedROD --dataset Cifar10/dir_a01_20c_gtest10 --num_classes 10 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 200 --eval_gap 5 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root resultsc100d03
python main.py \
--algorithm FedROD --dataset Cifar100/dir_a03_20c_gtest10 --num_classes 100 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 300 --eval_gap 6 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root resultsc100d01
python main.py \
--algorithm FedROD --dataset Cifar100/dir_a01_20c_gtest10 --num_classes 100 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 300 --eval_gap 6 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root resultsfedrs
python main.py \
--algorithm FedROD --dataset FedRS --num_classes 15 --num_clients 135 \
--model ResNet18 --img_size 64 --device cuda --device_id 0 \
--goal 261015 --global_rounds 500 --eval_gap 20 \
--join_ratio 0.075 --batch_size 10 --local_learning_rate 0.005 --local_epochs 5 \
--momentum 0.9 --weight_decay 1e-05 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root resultsFedLC — 5 configurations
c10d03
python main.py \
--algorithm FedLC --dataset Cifar10/dir_a03_20c_gtest10 --num_classes 10 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 200 --eval_gap 5 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 5 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --tau 6 --lc_missing_cap 10000c10d01
python main.py \
--algorithm FedLC --dataset Cifar10/dir_a01_20c_gtest10 --num_classes 10 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 200 --eval_gap 5 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 5 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --tau 6 --lc_missing_cap 10000c100d03
python main.py \
--algorithm FedLC --dataset Cifar100/dir_a03_20c_gtest10 --num_classes 100 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 300 --eval_gap 6 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 5 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --tau 6 --lc_missing_cap 10000c100d01
python main.py \
--algorithm FedLC --dataset Cifar100/dir_a01_20c_gtest10 --num_classes 100 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 300 --eval_gap 6 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 5 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --tau 6 --lc_missing_cap 10000fedrs
python main.py \
--algorithm FedLC --dataset FedRS --num_classes 15 --num_clients 135 \
--model ResNet18 --img_size 64 --device cuda --device_id 0 \
--goal 261015 --global_rounds 500 --eval_gap 20 \
--join_ratio 0.075 --batch_size 10 --local_learning_rate 0.005 --local_epochs 5 \
--momentum 0.9 --weight_decay 1e-05 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --tau 6 --lc_missing_cap 10000FedTHE — 5 configurations
c10d03
python main.py \
--algorithm FedTHE --dataset Cifar10/dir_a03_20c_gtest10 --num_classes 10 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 200 --eval_gap 5 \
--join_ratio 1.0 --batch_size 32 --local_learning_rate 0.01 --local_epochs 5 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --the_steps 20 --the_alpha 0.1 --the_beta 0.3 \
--the_personal_lr 0.01 --the_personal_epochs 1c10d01
python main.py \
--algorithm FedTHE --dataset Cifar10/dir_a01_20c_gtest10 --num_classes 10 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 200 --eval_gap 5 \
--join_ratio 1.0 --batch_size 32 --local_learning_rate 0.01 --local_epochs 5 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --the_steps 20 --the_alpha 0.1 --the_beta 0.3 \
--the_personal_lr 0.01 --the_personal_epochs 1c100d03
python main.py \
--algorithm FedTHE --dataset Cifar100/dir_a03_20c_gtest10 --num_classes 100 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 300 --eval_gap 6 \
--join_ratio 1.0 --batch_size 32 --local_learning_rate 0.01 --local_epochs 5 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --the_steps 20 --the_alpha 0.1 --the_beta 0.3 \
--the_personal_lr 0.01 --the_personal_epochs 1c100d01
python main.py \
--algorithm FedTHE --dataset Cifar100/dir_a01_20c_gtest10 --num_classes 100 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 300 --eval_gap 6 \
--join_ratio 1.0 --batch_size 32 --local_learning_rate 0.01 --local_epochs 5 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --the_steps 20 --the_alpha 0.1 --the_beta 0.3 \
--the_personal_lr 0.01 --the_personal_epochs 1fedrs
python main.py \
--algorithm FedTHE --dataset FedRS --num_classes 15 --num_clients 135 \
--model ResNet18 --img_size 64 --device cuda --device_id 0 \
--goal 261015 --global_rounds 500 --eval_gap 20 \
--join_ratio 0.075 --batch_size 32 --local_learning_rate 0.01 --local_epochs 5 \
--momentum 0.9 --weight_decay 1e-05 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --the_steps 20 --the_alpha 0.1 --the_beta 0.3 \
--the_personal_lr 0.01 --the_personal_epochs 1FedETF — 5 configurations
c10d03
python main.py \
--algorithm FedETF --dataset Cifar10/dir_a03_20c_gtest10 --num_classes 10 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 200 --eval_gap 5 \
--join_ratio 1.0 --batch_size 128 --local_learning_rate 0.04 --local_epochs 3 \
--momentum 0.9 --weight_decay 0.0005 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --etf_personalization_rounds 20 --etf_personalization_inner_steps 3 --etf_proto_lr 0.1 \
--etf_proj_lr 0.05c10d01
python main.py \
--algorithm FedETF --dataset Cifar10/dir_a01_20c_gtest10 --num_classes 10 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 200 --eval_gap 5 \
--join_ratio 1.0 --batch_size 128 --local_learning_rate 0.04 --local_epochs 3 \
--momentum 0.9 --weight_decay 0.0005 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --etf_personalization_rounds 20 --etf_personalization_inner_steps 3 --etf_proto_lr 0.1 \
--etf_proj_lr 0.05c100d03
python main.py \
--algorithm FedETF --dataset Cifar100/dir_a03_20c_gtest10 --num_classes 100 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 300 --eval_gap 6 \
--join_ratio 1.0 --batch_size 128 --local_learning_rate 0.04 --local_epochs 3 \
--momentum 0.9 --weight_decay 0.0005 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --etf_personalization_rounds 20 --etf_personalization_inner_steps 3 --etf_proto_lr 0.1 \
--etf_proj_lr 0.05c100d01
python main.py \
--algorithm FedETF --dataset Cifar100/dir_a01_20c_gtest10 --num_classes 100 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 300 --eval_gap 6 \
--join_ratio 1.0 --batch_size 128 --local_learning_rate 0.04 --local_epochs 3 \
--momentum 0.9 --weight_decay 0.0005 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --etf_personalization_rounds 20 --etf_personalization_inner_steps 3 --etf_proto_lr 0.1 \
--etf_proj_lr 0.05fedrs
python main.py \
--algorithm FedETF --dataset FedRS --num_classes 15 --num_clients 135 \
--model ResNet18 --img_size 64 --device cuda --device_id 0 \
--goal 261015 --global_rounds 500 --eval_gap 20 \
--join_ratio 0.075 --batch_size 128 --local_learning_rate 0.04 --local_epochs 5 \
--momentum 0.9 --weight_decay 0.0005 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --etf_personalization_rounds 20 --etf_personalization_inner_steps 3 --etf_proto_lr 0.1 \
--etf_proj_lr 0.05FedFA — 5 configurations
c10d03
python main.py \
--algorithm FedFA --dataset Cifar10/dir_a03_20c_gtest10 --num_classes 10 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 200 --eval_gap 5 \
--join_ratio 1.0 --batch_size 64 --local_learning_rate 0.01 --local_epochs 5 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --fedfa_mu 0.1 --fedfa_anchor_momentum 0.5 --fedfa_calibration_lr 0.001c10d01
python main.py \
--algorithm FedFA --dataset Cifar10/dir_a01_20c_gtest10 --num_classes 10 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 200 --eval_gap 5 \
--join_ratio 1.0 --batch_size 64 --local_learning_rate 0.01 --local_epochs 5 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --fedfa_mu 0.1 --fedfa_anchor_momentum 0.5 --fedfa_calibration_lr 0.001c100d03
python main.py \
--algorithm FedFA --dataset Cifar100/dir_a03_20c_gtest10 --num_classes 100 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 300 --eval_gap 6 \
--join_ratio 1.0 --batch_size 64 --local_learning_rate 0.01 --local_epochs 5 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --fedfa_mu 0.1 --fedfa_anchor_momentum 0.5 --fedfa_calibration_lr 0.001c100d01
python main.py \
--algorithm FedFA --dataset Cifar100/dir_a01_20c_gtest10 --num_classes 100 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 300 --eval_gap 6 \
--join_ratio 1.0 --batch_size 64 --local_learning_rate 0.01 --local_epochs 5 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --fedfa_mu 0.1 --fedfa_anchor_momentum 0.5 --fedfa_calibration_lr 0.001fedrs
python main.py \
--algorithm FedFA --dataset FedRS --num_classes 15 --num_clients 135 \
--model ResNet18 --img_size 64 --device cuda --device_id 0 \
--goal 261015 --global_rounds 500 --eval_gap 100 \
--join_ratio 0.075 --batch_size 64 --local_learning_rate 0.01 --local_epochs 5 \
--momentum 0.9 --weight_decay 1e-05 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 10 --data_root dataset \
--output_root results --fedfa_mu 0.1 --fedfa_anchor_momentum 0.5 --fedfa_calibration_lr 0.001pFedFDA — 5 configurations
c10d03
python main.py \
--algorithm pFedFDA --dataset Cifar10/dir_a03_20c_gtest10 --num_classes 10 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 200 --eval_gap 5 \
--join_ratio 1.0 --batch_size 50 --local_learning_rate 0.01 --local_epochs 5 \
--momentum 0.5 --weight_decay 0.0005 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --single_beta 1 --local_beta falsec10d01
python main.py \
--algorithm pFedFDA --dataset Cifar10/dir_a01_20c_gtest10 --num_classes 10 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 200 --eval_gap 5 \
--join_ratio 1.0 --batch_size 50 --local_learning_rate 0.01 --local_epochs 5 \
--momentum 0.5 --weight_decay 0.0005 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --single_beta 1 --local_beta falsec100d03
python main.py \
--algorithm pFedFDA --dataset Cifar100/dir_a03_20c_gtest10 --num_classes 100 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 300 --eval_gap 6 \
--join_ratio 1.0 --batch_size 50 --local_learning_rate 0.01 --local_epochs 5 \
--momentum 0.5 --weight_decay 0.0005 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --single_beta 1 --local_beta falsec100d01
python main.py \
--algorithm pFedFDA --dataset Cifar100/dir_a01_20c_gtest10 --num_classes 100 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 300 --eval_gap 6 \
--join_ratio 1.0 --batch_size 50 --local_learning_rate 0.01 --local_epochs 5 \
--momentum 0.5 --weight_decay 0.0005 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --single_beta 1 --local_beta falsefedrs
python main.py \
--algorithm pFedFDA --dataset FedRS --num_classes 15 --num_clients 135 \
--model ResNet18 --img_size 64 --device cuda --device_id 0 \
--goal 261015 --global_rounds 500 --eval_gap 20 \
--join_ratio 0.075 --batch_size 50 --local_learning_rate 0.01 --local_epochs 5 \
--momentum 0.9 --weight_decay 1e-05 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --single_beta 1 --local_beta falseFedVLS — 5 configurations
c10d03
python main.py \
--algorithm FedVLS --dataset Cifar10/dir_a03_20c_gtest10 --num_classes 10 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 200 --eval_gap 5 \
--join_ratio 1.0 --batch_size 64 --local_learning_rate 0.01 --local_epochs 10 \
--momentum 0.9 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --lamda 0.1c10d01
python main.py \
--algorithm FedVLS --dataset Cifar10/dir_a01_20c_gtest10 --num_classes 10 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 200 --eval_gap 5 \
--join_ratio 1.0 --batch_size 64 --local_learning_rate 0.01 --local_epochs 10 \
--momentum 0.9 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --lamda 0.1c100d03
python main.py \
--algorithm FedVLS --dataset Cifar100/dir_a03_20c_gtest10 --num_classes 100 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 300 --eval_gap 6 \
--join_ratio 1.0 --batch_size 64 --local_learning_rate 0.01 --local_epochs 10 \
--momentum 0.9 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --lamda 0.1c100d01
python main.py \
--algorithm FedVLS --dataset Cifar100/dir_a01_20c_gtest10 --num_classes 100 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 300 --eval_gap 6 \
--join_ratio 1.0 --batch_size 64 --local_learning_rate 0.01 --local_epochs 10 \
--momentum 0.9 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --lamda 0.1fedrs
python main.py \
--algorithm FedVLS --dataset FedRS --num_classes 15 --num_clients 135 \
--model ResNet18 --img_size 64 --device cuda --device_id 0 \
--goal 261015 --global_rounds 500 --eval_gap 20 \
--join_ratio 0.075 --batch_size 64 --local_learning_rate 0.01 --local_epochs 5 \
--momentum 0.9 --weight_decay 1e-05 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --lamda 0.1FedDrPlus — 5 configurations
c10d03
python main.py \
--algorithm FedDrPlus --dataset Cifar10/dir_a03_20c_gtest10 --num_classes 10 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 200 --eval_gap 5 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.175 --local_epochs 5 \
--momentum 0.9 --weight_decay 1e-05 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --drp_beta 0.9c10d01
python main.py \
--algorithm FedDrPlus --dataset Cifar10/dir_a01_20c_gtest10 --num_classes 10 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 200 --eval_gap 5 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.175 --local_epochs 5 \
--momentum 0.9 --weight_decay 1e-05 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --drp_beta 0.9c100d03
python main.py \
--algorithm FedDrPlus --dataset Cifar100/dir_a03_20c_gtest10 --num_classes 100 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 300 --eval_gap 6 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.25 --local_epochs 5 \
--momentum 0.9 --weight_decay 1e-05 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --drp_beta 0.9c100d01
python main.py \
--algorithm FedDrPlus --dataset Cifar100/dir_a01_20c_gtest10 --num_classes 100 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 300 --eval_gap 6 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.25 --local_epochs 5 \
--momentum 0.9 --weight_decay 1e-05 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --drp_beta 0.9fedrs
python main.py \
--algorithm FedDrPlus --dataset FedRS --num_classes 15 --num_clients 135 \
--model ResNet18 --img_size 64 --device cuda --device_id 0 \
--goal 261015 --global_rounds 500 --eval_gap 20 \
--join_ratio 0.075 --batch_size 10 --local_learning_rate 0.175 --local_epochs 5 \
--momentum 0.9 --weight_decay 1e-05 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --drp_beta 0.9BTFL — 5 configurations
c10d03
python main.py \
--algorithm BTFL --dataset Cifar10/dir_a03_20c_gtest10 --num_classes 10 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 200 --eval_gap 5 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 5 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --btfl_q_level 2 --btfl_kb 4 --btfl_sigma 0 \
--btfl_update_condition 16 --btfl_personal_lr 0.01 --btfl_personal_epochs 1 --btfl_ent_norm 4.605170185988092c10d01
python main.py \
--algorithm BTFL --dataset Cifar10/dir_a01_20c_gtest10 --num_classes 10 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 200 --eval_gap 5 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 5 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --btfl_q_level 2 --btfl_kb 4 --btfl_sigma 0 \
--btfl_update_condition 16 --btfl_personal_lr 0.01 --btfl_personal_epochs 1 --btfl_ent_norm 4.605170185988092c100d03
python main.py \
--algorithm BTFL --dataset Cifar100/dir_a03_20c_gtest10 --num_classes 100 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 300 --eval_gap 6 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 5 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --btfl_q_level 2 --btfl_kb 4 --btfl_sigma 0 \
--btfl_update_condition 16 --btfl_personal_lr 0.01 --btfl_personal_epochs 1 --btfl_ent_norm 4.605170185988092c100d01
python main.py \
--algorithm BTFL --dataset Cifar100/dir_a01_20c_gtest10 --num_classes 100 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 300 --eval_gap 6 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 5 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --btfl_q_level 2 --btfl_kb 4 --btfl_sigma 0 \
--btfl_update_condition 16 --btfl_personal_lr 0.01 --btfl_personal_epochs 1 --btfl_ent_norm 4.605170185988092fedrs
python main.py \
--algorithm BTFL --dataset FedRS --num_classes 15 --num_clients 135 \
--model ResNet18 --img_size 64 --device cuda --device_id 0 \
--goal 261015 --global_rounds 500 --eval_gap 20 \
--join_ratio 0.075 --batch_size 10 --local_learning_rate 0.005 --local_epochs 5 \
--momentum 0.9 --weight_decay 1e-05 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --btfl_q_level 2 --btfl_kb 4 --btfl_sigma 0 \
--btfl_update_condition 16 --btfl_personal_lr 0.01 --btfl_personal_epochs 1 --btfl_ent_norm 4.605170185988092HPFL — 5 configurations · FedAvg backbone
c10d03
python main.py \
--algorithm HPFL --dataset Cifar10/dir_a03_20c_gtest10 --num_classes 10 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 5 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 10 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/c10d03/seed1/FedAvg_261015/FedAvg_261015_seed1_terminal.pt --hpfl_backbone_source FedAvg --hpfl_head_epochs 10 \
--hpfl_head_lr 0.1 --hpfl_head_batch_size 128 --hpfl_head_momentum 0 --hpfl_head_weight_decay 0.0001 \
--hpfl_feature_batch_size 10 --hpfl_query_batch_size 128 --hpfl_marker_limit 0 \
--hpfl_noise_coef 0 --hpfl_mmd_block_size 512c10d01
python main.py \
--algorithm HPFL --dataset Cifar10/dir_a01_20c_gtest10 --num_classes 10 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 5 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 10 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/c10d01/seed1/FedAvg_261015/FedAvg_261015_seed1_terminal.pt --hpfl_backbone_source FedAvg --hpfl_head_epochs 10 \
--hpfl_head_lr 0.1 --hpfl_head_batch_size 128 --hpfl_head_momentum 0 --hpfl_head_weight_decay 0.0001 \
--hpfl_feature_batch_size 10 --hpfl_query_batch_size 128 --hpfl_marker_limit 0 \
--hpfl_noise_coef 0 --hpfl_mmd_block_size 512c100d03
python main.py \
--algorithm HPFL --dataset Cifar100/dir_a03_20c_gtest10 --num_classes 100 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 6 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 10 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/c100d03/seed1/FedAvg_261015/FedAvg_261015_seed1_terminal.pt --hpfl_backbone_source FedAvg --hpfl_head_epochs 10 \
--hpfl_head_lr 0.1 --hpfl_head_batch_size 128 --hpfl_head_momentum 0 --hpfl_head_weight_decay 0.0001 \
--hpfl_feature_batch_size 10 --hpfl_query_batch_size 128 --hpfl_marker_limit 0 \
--hpfl_noise_coef 0 --hpfl_mmd_block_size 512c100d01
python main.py \
--algorithm HPFL --dataset Cifar100/dir_a01_20c_gtest10 --num_classes 100 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 6 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 10 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/c100d01/seed1/FedAvg_261015/FedAvg_261015_seed1_terminal.pt --hpfl_backbone_source FedAvg --hpfl_head_epochs 10 \
--hpfl_head_lr 0.1 --hpfl_head_batch_size 128 --hpfl_head_momentum 0 --hpfl_head_weight_decay 0.0001 \
--hpfl_feature_batch_size 10 --hpfl_query_batch_size 128 --hpfl_marker_limit 0 \
--hpfl_noise_coef 0 --hpfl_mmd_block_size 512fedrs
python main.py \
--algorithm HPFL --dataset FedRS --num_classes 15 --num_clients 135 \
--model ResNet18 --img_size 64 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 20 \
--join_ratio 0.075 --batch_size 10 --local_learning_rate 0.005 --local_epochs 10 \
--momentum 0.9 --weight_decay 1e-05 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/fedrs/seed1/FedAvg_261015/FedAvg_261015_seed1_terminal.pt --hpfl_backbone_source FedAvg --hpfl_head_epochs 10 \
--hpfl_head_lr 0.1 --hpfl_head_batch_size 128 --hpfl_head_momentum 0 --hpfl_head_weight_decay 0.0001 \
--hpfl_feature_batch_size 10 --hpfl_query_batch_size 128 --hpfl_marker_limit 0 \
--hpfl_noise_coef 0 --hpfl_mmd_block_size 512FedYoYo — 5 configurations
c10d03
python main.py \
--algorithm FedYoYo --dataset Cifar10/dir_a03_20c_gtest10 --num_classes 10 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 200 --eval_gap 5 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 5 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --yoyo_warmup 50 --yoyo_gamma 0.1 --yoyo_tau 1.5 \
--yoyo_kd_weight 4 --yoyo_kd_temp 1.5 --asd_aug trivialc10d01
python main.py \
--algorithm FedYoYo --dataset Cifar10/dir_a01_20c_gtest10 --num_classes 10 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 200 --eval_gap 5 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 5 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --yoyo_warmup 50 --yoyo_gamma 0.1 --yoyo_tau 1.5 \
--yoyo_kd_weight 4 --yoyo_kd_temp 1.5 --asd_aug trivialc100d03
python main.py \
--algorithm FedYoYo --dataset Cifar100/dir_a03_20c_gtest10 --num_classes 100 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 300 --eval_gap 6 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 5 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --yoyo_warmup 50 --yoyo_gamma 0.1 --yoyo_tau 1.5 \
--yoyo_kd_weight 4 --yoyo_kd_temp 1.5 --asd_aug trivialc100d01
python main.py \
--algorithm FedYoYo --dataset Cifar100/dir_a01_20c_gtest10 --num_classes 100 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 300 --eval_gap 6 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 5 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --yoyo_warmup 50 --yoyo_gamma 0.1 --yoyo_tau 1.5 \
--yoyo_kd_weight 4 --yoyo_kd_temp 1.5 --asd_aug trivialfedrs
python main.py \
--algorithm FedYoYo --dataset FedRS --num_classes 15 --num_clients 135 \
--model ResNet18 --img_size 64 --device cuda --device_id 0 \
--goal 261015 --global_rounds 500 --eval_gap 100 \
--join_ratio 0.075 --batch_size 10 --local_learning_rate 0.005 --local_epochs 5 \
--momentum 0.9 --weight_decay 1e-05 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 10 --data_root dataset \
--output_root results --yoyo_warmup 125 --yoyo_gamma 0.1 --yoyo_tau 1.5 \
--yoyo_kd_weight 4 --yoyo_kd_temp 1.5 --asd_aug trivialFedLog — 5 configurations
c10d03
python main.py \
--algorithm FedLog --dataset Cifar10/dir_a03_20c_gtest10 --num_classes 10 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 200 --eval_gap 5 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 5 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --flog_lr 0.0005 --flog_map_iters 50000 --flog_map_lr 0.01 \
--flog_map_tol 0.001 --flog_stat_batch_size 100c10d01
python main.py \
--algorithm FedLog --dataset Cifar10/dir_a01_20c_gtest10 --num_classes 10 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 200 --eval_gap 5 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 5 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --flog_lr 0.0005 --flog_map_iters 50000 --flog_map_lr 0.01 \
--flog_map_tol 0.001 --flog_stat_batch_size 100c100d03
python main.py \
--algorithm FedLog --dataset Cifar100/dir_a03_20c_gtest10 --num_classes 100 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 300 --eval_gap 6 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 5 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --flog_lr 0.0005 --flog_map_iters 50000 --flog_map_lr 0.01 \
--flog_map_tol 0.001 --flog_stat_batch_size 100c100d01
python main.py \
--algorithm FedLog --dataset Cifar100/dir_a01_20c_gtest10 --num_classes 100 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 300 --eval_gap 6 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 5 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --flog_lr 0.0005 --flog_map_iters 50000 --flog_map_lr 0.01 \
--flog_map_tol 0.001 --flog_stat_batch_size 100fedrs
python main.py \
--algorithm FedLog --dataset FedRS --num_classes 15 --num_clients 135 \
--model ResNet18 --img_size 64 --device cuda --device_id 0 \
--goal 261015 --global_rounds 500 --eval_gap 20 \
--join_ratio 0.075 --batch_size 10 --local_learning_rate 0.005 --local_epochs 5 \
--momentum 0.9 --weight_decay 1e-05 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --flog_lr 0.0005 --flog_map_iters 50000 --flog_map_lr 0.01 \
--flog_map_tol 0.001 --flog_stat_batch_size 100pFedGM — 5 configurations
c10d03
python main.py \
--algorithm pFedGM --dataset Cifar10/dir_a03_20c_gtest10 --num_classes 10 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 200 --eval_gap 5 \
--join_ratio 1.0 --batch_size 50 --local_learning_rate 0.01 --local_epochs 5 \
--momentum 0.5 --weight_decay 0.0005 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --pfedgm_lambda 1 --pfedgm_cov_mode grad --pfedgm_absent_proto drop \
--pfedgm_proto_ema 0.9 --pfedgm_aug 0 --pfedgm_local_epochs 5 --pfedgm_p_lr 0.05 \
--pfedgm_lbfgs_iter 10 --pfedgm_lbfgs_rounds 5 --pfedgm_lbfgs_lr 0.05c10d01
python main.py \
--algorithm pFedGM --dataset Cifar10/dir_a01_20c_gtest10 --num_classes 10 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 200 --eval_gap 5 \
--join_ratio 1.0 --batch_size 50 --local_learning_rate 0.01 --local_epochs 5 \
--momentum 0.5 --weight_decay 0.0005 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --pfedgm_lambda 1 --pfedgm_cov_mode grad --pfedgm_absent_proto drop \
--pfedgm_proto_ema 0.9 --pfedgm_aug 0 --pfedgm_local_epochs 5 --pfedgm_p_lr 0.05 \
--pfedgm_lbfgs_iter 10 --pfedgm_lbfgs_rounds 5 --pfedgm_lbfgs_lr 0.05c100d03
python main.py \
--algorithm pFedGM --dataset Cifar100/dir_a03_20c_gtest10 --num_classes 100 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 300 --eval_gap 6 \
--join_ratio 1.0 --batch_size 50 --local_learning_rate 0.01 --local_epochs 5 \
--momentum 0.5 --weight_decay 0.0005 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --pfedgm_lambda 1 --pfedgm_cov_mode grad --pfedgm_absent_proto drop \
--pfedgm_proto_ema 0.9 --pfedgm_aug 0 --pfedgm_local_epochs 5 --pfedgm_p_lr 0.05 \
--pfedgm_lbfgs_iter 10 --pfedgm_lbfgs_rounds 5 --pfedgm_lbfgs_lr 0.05c100d01
python main.py \
--algorithm pFedGM --dataset Cifar100/dir_a01_20c_gtest10 --num_classes 100 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 300 --eval_gap 6 \
--join_ratio 1.0 --batch_size 50 --local_learning_rate 0.01 --local_epochs 5 \
--momentum 0.5 --weight_decay 0.0005 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --pfedgm_lambda 1 --pfedgm_cov_mode grad --pfedgm_absent_proto drop \
--pfedgm_proto_ema 0.9 --pfedgm_aug 0 --pfedgm_local_epochs 5 --pfedgm_p_lr 0.05 \
--pfedgm_lbfgs_iter 10 --pfedgm_lbfgs_rounds 5 --pfedgm_lbfgs_lr 0.05fedrs
python main.py \
--algorithm pFedGM --dataset FedRS --num_classes 15 --num_clients 135 \
--model ResNet18 --img_size 64 --device cuda --device_id 0 \
--goal 261015 --global_rounds 500 --eval_gap 20 \
--join_ratio 0.075 --batch_size 50 --local_learning_rate 0.01 --local_epochs 5 \
--momentum 0.9 --weight_decay 1e-05 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --pfedgm_lambda 1 --pfedgm_cov_mode grad --pfedgm_absent_proto drop \
--pfedgm_proto_ema 0.9 --pfedgm_aug 0 --pfedgm_local_epochs 5 --pfedgm_p_lr 0.05 \
--pfedgm_lbfgs_iter 10 --pfedgm_lbfgs_rounds 5 --pfedgm_lbfgs_lr 0.05CCVR — 10 configurations · FedAvg and FedYoYo backbones
Backbone: FedAvg
c10d03
python main.py \
--algorithm CCVR --dataset Cifar10/dir_a03_20c_gtest10 --num_classes 10 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 5 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/c10d03/seed1/FedAvg_261015/FedAvg_261015_seed1_terminal.pt --ccvr_per 200c10d01
python main.py \
--algorithm CCVR --dataset Cifar10/dir_a01_20c_gtest10 --num_classes 10 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 5 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/c10d01/seed1/FedAvg_261015/FedAvg_261015_seed1_terminal.pt --ccvr_per 200c100d03
python main.py \
--algorithm CCVR --dataset Cifar100/dir_a03_20c_gtest10 --num_classes 100 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 6 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/c100d03/seed1/FedAvg_261015/FedAvg_261015_seed1_terminal.pt --ccvr_per 200c100d01
python main.py \
--algorithm CCVR --dataset Cifar100/dir_a01_20c_gtest10 --num_classes 100 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 6 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/c100d01/seed1/FedAvg_261015/FedAvg_261015_seed1_terminal.pt --ccvr_per 200fedrs
python main.py \
--algorithm CCVR --dataset FedRS --num_classes 15 --num_clients 135 \
--model ResNet18 --img_size 64 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 20 \
--join_ratio 0.075 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.9 --weight_decay 1e-05 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/fedrs/seed1/FedAvg_261015/FedAvg_261015_seed1_terminal.pt --ccvr_per 200Backbone: FedYoYo
c10d03
python main.py \
--algorithm CCVR --dataset Cifar10/dir_a03_20c_gtest10 --num_classes 10 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 5 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/c10d03/seed1/FedYoYo_261015/FedYoYo_261015_seed1_terminal.pt --ccvr_per 200c10d01
python main.py \
--algorithm CCVR --dataset Cifar10/dir_a01_20c_gtest10 --num_classes 10 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 5 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/c10d01/seed1/FedYoYo_261015/FedYoYo_261015_seed1_terminal.pt --ccvr_per 200c100d03
python main.py \
--algorithm CCVR --dataset Cifar100/dir_a03_20c_gtest10 --num_classes 100 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 6 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/c100d03/seed1/FedYoYo_261015/FedYoYo_261015_seed1_terminal.pt --ccvr_per 200c100d01
python main.py \
--algorithm CCVR --dataset Cifar100/dir_a01_20c_gtest10 --num_classes 100 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 6 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/c100d01/seed1/FedYoYo_261015/FedYoYo_261015_seed1_terminal.pt --ccvr_per 200fedrs
python main.py \
--algorithm CCVR --dataset FedRS --num_classes 15 --num_clients 135 \
--model ResNet18 --img_size 64 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 20 \
--join_ratio 0.075 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.9 --weight_decay 1e-05 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/fedrs/seed1/FedYoYo_261015/FedYoYo_261015_seed1_terminal.pt --ccvr_per 200FedNCM — 10 configurations · FedAvg and FedYoYo backbones
Backbone: FedAvg
c10d03
python main.py \
--algorithm FedNCM --dataset Cifar10/dir_a03_20c_gtest10 --num_classes 10 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 5 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/c10d03/seed1/FedAvg_261015/FedAvg_261015_seed1_terminal.ptc10d01
python main.py \
--algorithm FedNCM --dataset Cifar10/dir_a01_20c_gtest10 --num_classes 10 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 5 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/c10d01/seed1/FedAvg_261015/FedAvg_261015_seed1_terminal.ptc100d03
python main.py \
--algorithm FedNCM --dataset Cifar100/dir_a03_20c_gtest10 --num_classes 100 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 6 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/c100d03/seed1/FedAvg_261015/FedAvg_261015_seed1_terminal.ptc100d01
python main.py \
--algorithm FedNCM --dataset Cifar100/dir_a01_20c_gtest10 --num_classes 100 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 6 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/c100d01/seed1/FedAvg_261015/FedAvg_261015_seed1_terminal.ptfedrs
python main.py \
--algorithm FedNCM --dataset FedRS --num_classes 15 --num_clients 135 \
--model ResNet18 --img_size 64 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 20 \
--join_ratio 0.075 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.9 --weight_decay 1e-05 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/fedrs/seed1/FedAvg_261015/FedAvg_261015_seed1_terminal.ptBackbone: FedYoYo
c10d03
python main.py \
--algorithm FedNCM --dataset Cifar10/dir_a03_20c_gtest10 --num_classes 10 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 5 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/c10d03/seed1/FedYoYo_261015/FedYoYo_261015_seed1_terminal.ptc10d01
python main.py \
--algorithm FedNCM --dataset Cifar10/dir_a01_20c_gtest10 --num_classes 10 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 5 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/c10d01/seed1/FedYoYo_261015/FedYoYo_261015_seed1_terminal.ptc100d03
python main.py \
--algorithm FedNCM --dataset Cifar100/dir_a03_20c_gtest10 --num_classes 100 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 6 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/c100d03/seed1/FedYoYo_261015/FedYoYo_261015_seed1_terminal.ptc100d01
python main.py \
--algorithm FedNCM --dataset Cifar100/dir_a01_20c_gtest10 --num_classes 100 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 6 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/c100d01/seed1/FedYoYo_261015/FedYoYo_261015_seed1_terminal.ptfedrs
python main.py \
--algorithm FedNCM --dataset FedRS --num_classes 15 --num_clients 135 \
--model ResNet18 --img_size 64 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 20 \
--join_ratio 0.075 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.9 --weight_decay 1e-05 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/fedrs/seed1/FedYoYo_261015/FedYoYo_261015_seed1_terminal.ptFed3R — 10 configurations · FedAvg and FedYoYo backbones
Backbone: FedAvg
c10d03
python main.py \
--algorithm Fed3R --dataset Cifar10/dir_a03_20c_gtest10 --num_classes 10 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 5 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/c10d03/seed1/FedAvg_261015/FedAvg_261015_seed1_terminal.pt --f3r_lambda 0.01c10d01
python main.py \
--algorithm Fed3R --dataset Cifar10/dir_a01_20c_gtest10 --num_classes 10 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 5 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/c10d01/seed1/FedAvg_261015/FedAvg_261015_seed1_terminal.pt --f3r_lambda 0.01c100d03
python main.py \
--algorithm Fed3R --dataset Cifar100/dir_a03_20c_gtest10 --num_classes 100 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 6 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/c100d03/seed1/FedAvg_261015/FedAvg_261015_seed1_terminal.pt --f3r_lambda 0.01c100d01
python main.py \
--algorithm Fed3R --dataset Cifar100/dir_a01_20c_gtest10 --num_classes 100 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 6 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/c100d01/seed1/FedAvg_261015/FedAvg_261015_seed1_terminal.pt --f3r_lambda 0.01fedrs
python main.py \
--algorithm Fed3R --dataset FedRS --num_classes 15 --num_clients 135 \
--model ResNet18 --img_size 64 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 20 \
--join_ratio 0.075 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.9 --weight_decay 1e-05 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/fedrs/seed1/FedAvg_261015/FedAvg_261015_seed1_terminal.pt --f3r_lambda 0.01Backbone: FedYoYo
c10d03
python main.py \
--algorithm Fed3R --dataset Cifar10/dir_a03_20c_gtest10 --num_classes 10 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 5 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/c10d03/seed1/FedYoYo_261015/FedYoYo_261015_seed1_terminal.pt --f3r_lambda 0.01c10d01
python main.py \
--algorithm Fed3R --dataset Cifar10/dir_a01_20c_gtest10 --num_classes 10 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 5 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/c10d01/seed1/FedYoYo_261015/FedYoYo_261015_seed1_terminal.pt --f3r_lambda 0.01c100d03
python main.py \
--algorithm Fed3R --dataset Cifar100/dir_a03_20c_gtest10 --num_classes 100 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 6 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/c100d03/seed1/FedYoYo_261015/FedYoYo_261015_seed1_terminal.pt --f3r_lambda 0.01c100d01
python main.py \
--algorithm Fed3R --dataset Cifar100/dir_a01_20c_gtest10 --num_classes 100 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 6 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/c100d01/seed1/FedYoYo_261015/FedYoYo_261015_seed1_terminal.pt --f3r_lambda 0.01fedrs
python main.py \
--algorithm Fed3R --dataset FedRS --num_classes 15 --num_clients 135 \
--model ResNet18 --img_size 64 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 20 \
--join_ratio 0.075 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.9 --weight_decay 1e-05 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/fedrs/seed1/FedYoYo_261015/FedYoYo_261015_seed1_terminal.pt --f3r_lambda 0.01FedCGS — 10 configurations · FedAvg and FedYoYo backbones
Backbone: FedAvg
c10d03
python main.py \
--algorithm FedCGS --dataset Cifar10/dir_a03_20c_gtest10 --num_classes 10 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 5 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/c10d03/seed1/FedAvg_261015/FedAvg_261015_seed1_terminal.pt --cgs_variant exactnormc10d01
python main.py \
--algorithm FedCGS --dataset Cifar10/dir_a01_20c_gtest10 --num_classes 10 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 5 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/c10d01/seed1/FedAvg_261015/FedAvg_261015_seed1_terminal.pt --cgs_variant exactnormc100d03
python main.py \
--algorithm FedCGS --dataset Cifar100/dir_a03_20c_gtest10 --num_classes 100 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 6 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/c100d03/seed1/FedAvg_261015/FedAvg_261015_seed1_terminal.pt --cgs_variant exactnormc100d01
python main.py \
--algorithm FedCGS --dataset Cifar100/dir_a01_20c_gtest10 --num_classes 100 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 6 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/c100d01/seed1/FedAvg_261015/FedAvg_261015_seed1_terminal.pt --cgs_variant exactnormfedrs
python main.py \
--algorithm FedCGS --dataset FedRS --num_classes 15 --num_clients 135 \
--model ResNet18 --img_size 64 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 20 \
--join_ratio 0.075 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.9 --weight_decay 1e-05 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/fedrs/seed1/FedAvg_261015/FedAvg_261015_seed1_terminal.pt --cgs_variant exactnormBackbone: FedYoYo
c10d03
python main.py \
--algorithm FedCGS --dataset Cifar10/dir_a03_20c_gtest10 --num_classes 10 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 5 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/c10d03/seed1/FedYoYo_261015/FedYoYo_261015_seed1_terminal.pt --cgs_variant exactnormc10d01
python main.py \
--algorithm FedCGS --dataset Cifar10/dir_a01_20c_gtest10 --num_classes 10 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 5 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/c10d01/seed1/FedYoYo_261015/FedYoYo_261015_seed1_terminal.pt --cgs_variant exactnormc100d03
python main.py \
--algorithm FedCGS --dataset Cifar100/dir_a03_20c_gtest10 --num_classes 100 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 6 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/c100d03/seed1/FedYoYo_261015/FedYoYo_261015_seed1_terminal.pt --cgs_variant exactnormc100d01
python main.py \
--algorithm FedCGS --dataset Cifar100/dir_a01_20c_gtest10 --num_classes 100 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 6 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/c100d01/seed1/FedYoYo_261015/FedYoYo_261015_seed1_terminal.pt --cgs_variant exactnormfedrs
python main.py \
--algorithm FedCGS --dataset FedRS --num_classes 15 --num_clients 135 \
--model ResNet18 --img_size 64 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 20 \
--join_ratio 0.075 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.9 --weight_decay 1e-05 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/fedrs/seed1/FedYoYo_261015/FedYoYo_261015_seed1_terminal.pt --cgs_variant exactnormFedCOF — 10 configurations · FedAvg and FedYoYo backbones
Backbone: FedAvg
c10d03
python main.py \
--algorithm FedCOF --dataset Cifar10/dir_a03_20c_gtest10 --num_classes 10 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 5 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/c10d03/seed1/FedAvg_261015/FedAvg_261015_seed1_terminal.pt --fcof_gamma 1c10d01
python main.py \
--algorithm FedCOF --dataset Cifar10/dir_a01_20c_gtest10 --num_classes 10 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 5 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/c10d01/seed1/FedAvg_261015/FedAvg_261015_seed1_terminal.pt --fcof_gamma 1c100d03
python main.py \
--algorithm FedCOF --dataset Cifar100/dir_a03_20c_gtest10 --num_classes 100 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 6 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/c100d03/seed1/FedAvg_261015/FedAvg_261015_seed1_terminal.pt --fcof_gamma 1c100d01
python main.py \
--algorithm FedCOF --dataset Cifar100/dir_a01_20c_gtest10 --num_classes 100 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 6 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/c100d01/seed1/FedAvg_261015/FedAvg_261015_seed1_terminal.pt --fcof_gamma 1fedrs
python main.py \
--algorithm FedCOF --dataset FedRS --num_classes 15 --num_clients 135 \
--model ResNet18 --img_size 64 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 20 \
--join_ratio 0.075 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.9 --weight_decay 1e-05 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/fedrs/seed1/FedAvg_261015/FedAvg_261015_seed1_terminal.pt --fcof_gamma 1Backbone: FedYoYo
c10d03
python main.py \
--algorithm FedCOF --dataset Cifar10/dir_a03_20c_gtest10 --num_classes 10 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 5 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/c10d03/seed1/FedYoYo_261015/FedYoYo_261015_seed1_terminal.pt --fcof_gamma 1c10d01
python main.py \
--algorithm FedCOF --dataset Cifar10/dir_a01_20c_gtest10 --num_classes 10 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 5 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/c10d01/seed1/FedYoYo_261015/FedYoYo_261015_seed1_terminal.pt --fcof_gamma 1c100d03
python main.py \
--algorithm FedCOF --dataset Cifar100/dir_a03_20c_gtest10 --num_classes 100 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 6 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/c100d03/seed1/FedYoYo_261015/FedYoYo_261015_seed1_terminal.pt --fcof_gamma 1c100d01
python main.py \
--algorithm FedCOF --dataset Cifar100/dir_a01_20c_gtest10 --num_classes 100 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 6 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/c100d01/seed1/FedYoYo_261015/FedYoYo_261015_seed1_terminal.pt --fcof_gamma 1fedrs
python main.py \
--algorithm FedCOF --dataset FedRS --num_classes 15 --num_clients 135 \
--model ResNet18 --img_size 64 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 20 \
--join_ratio 0.075 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.9 --weight_decay 1e-05 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/fedrs/seed1/FedYoYo_261015/FedYoYo_261015_seed1_terminal.pt --fcof_gamma 1GH-LDA — 10 configurations · FedAvg and FedYoYo backbones
Backbone: FedAvg
c10d03
python main.py \
--algorithm GHLDA --dataset Cifar10/dir_a03_20c_gtest10 --num_classes 10 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 5 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/c10d03/seed1/FedAvg_261015/FedAvg_261015_seed1_terminal.pt --ghlda_lda_shrink 0.05c10d01
python main.py \
--algorithm GHLDA --dataset Cifar10/dir_a01_20c_gtest10 --num_classes 10 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 5 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/c10d01/seed1/FedAvg_261015/FedAvg_261015_seed1_terminal.pt --ghlda_lda_shrink 0.05c100d03
python main.py \
--algorithm GHLDA --dataset Cifar100/dir_a03_20c_gtest10 --num_classes 100 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 6 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/c100d03/seed1/FedAvg_261015/FedAvg_261015_seed1_terminal.pt --ghlda_lda_shrink 0.05c100d01
python main.py \
--algorithm GHLDA --dataset Cifar100/dir_a01_20c_gtest10 --num_classes 100 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 6 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/c100d01/seed1/FedAvg_261015/FedAvg_261015_seed1_terminal.pt --ghlda_lda_shrink 0.05fedrs
python main.py \
--algorithm GHLDA --dataset FedRS --num_classes 15 --num_clients 135 \
--model ResNet18 --img_size 64 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 20 \
--join_ratio 0.075 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.9 --weight_decay 1e-05 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/fedrs/seed1/FedAvg_261015/FedAvg_261015_seed1_terminal.pt --ghlda_lda_shrink 0.05Backbone: FedYoYo
c10d03
python main.py \
--algorithm GHLDA --dataset Cifar10/dir_a03_20c_gtest10 --num_classes 10 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 5 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/c10d03/seed1/FedYoYo_261015/FedYoYo_261015_seed1_terminal.pt --ghlda_lda_shrink 0.05c10d01
python main.py \
--algorithm GHLDA --dataset Cifar10/dir_a01_20c_gtest10 --num_classes 10 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 5 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/c10d01/seed1/FedYoYo_261015/FedYoYo_261015_seed1_terminal.pt --ghlda_lda_shrink 0.05c100d03
python main.py \
--algorithm GHLDA --dataset Cifar100/dir_a03_20c_gtest10 --num_classes 100 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 6 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/c100d03/seed1/FedYoYo_261015/FedYoYo_261015_seed1_terminal.pt --ghlda_lda_shrink 0.05c100d01
python main.py \
--algorithm GHLDA --dataset Cifar100/dir_a01_20c_gtest10 --num_classes 100 --num_clients 20 \
--model ResNet18 --img_size 32 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 6 \
--join_ratio 1.0 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.0 --weight_decay 0.0 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/c100d01/seed1/FedYoYo_261015/FedYoYo_261015_seed1_terminal.pt --ghlda_lda_shrink 0.05fedrs
python main.py \
--algorithm GHLDA --dataset FedRS --num_classes 15 --num_clients 135 \
--model ResNet18 --img_size 64 --device cuda --device_id 0 \
--goal 261015 --global_rounds 0 --eval_gap 20 \
--join_ratio 0.075 --batch_size 10 --local_learning_rate 0.005 --local_epochs 1 \
--momentum 0.9 --weight_decay 1e-05 --learning_rate_decay false --learning_rate_decay_gamma 0.99 \
--rare_class_k 2 --ckpt_every 0 --data_root dataset \
--output_root results --backbone_ckpt results/fedrs/seed1/FedYoYo_261015/FedYoYo_261015_seed1_terminal.pt --ghlda_lda_shrink 0.05Each run saves its configuration, final metrics and evaluation records alongside the model files. Checkpoint names use <method>_<goal>_seed<seed> or <backbone-method>_<head-method>_<goal>_seed<seed> as their prefix:
| File | Contents |
|---|---|
config.json |
Run configuration |
metrics.json |
Final metrics, stored as fractions |
data/summary.h5 / data/detail.h5 |
Evaluation curves and client/class-level records |
*_terminal.pt |
Model at the end of training |
*_deployment.pt |
Inference checkpoints saved by FedGRC and HPFL |
checkpoints/round_XXX.pt |
Intermediate models when --ckpt_every is enabled |
For FedGRC, terminal.pt contains the trained backbone and auxiliary classifier; deployment.pt additionally contains MMS scales and SASP heads. Its final metrics evaluate the MMS/SASP predictor. HPFL saves a deployment checkpoint; statistical classifiers save their fitted model as a terminal checkpoint.
🔎 FedGRC inference
images is a normalized tensor of shape [N, 3, H, W]; client_id selects the personalized head.
from flcore.clients.clientgrc import FedGRCPredictor
predictor = FedGRCPredictor.load(
"results/c10d03/seed1/FedGRC_261015/FedGRC_261015_seed1_deployment.pt",
device="cuda",
)
predictions = predictor.predict(images, client_id=0, batch_size=256)If you find FedGRC or this benchmark helpful, please consider citing our work:
@article{Lin2026FedGRC,
author = {Junyu Lin and Bosong Qi and Pengcheng Shi and Jiayuan Li},
title = {Is High Local Accuracy Enough? Geometric Consensus with Support-Adaptive Statistical Personalization for Federated Learning},
journal = {arXiv preprint arXiv:2610.31133},
year = {2026},
}If you have any questions, please open an issue in this repository or contact jonathanlin1206@whu.edu.cn.
🏆 We thank the PFLlib team and the authors who shared the reference implementations listed above.
🏆 We also thank the FedRS-Bench team for integrating and providing multi-source remote sensing datasets with real-world heterogeneous distributions for federated learning.
See LICENSE and third-party notices for licensing information.
FedGRC-Benchmark/
├── README.md
├── requirements.txt
├── LICENSE
├── LICENSES/ # Third-party licenses and attribution
├── main.py # Run any of the 22 methods
├── dataset/ # CIFAR-10, CIFAR-100, and FedRS NPZ files extracted from Releases
├── flcore/
│ ├── clients/ # Client implementations
│ │ ├── clientbase.py
│ │ ├── clientavg.py
│ │ └── ...
│ ├── servers/ # Server implementations
│ │ ├── serverbase.py
│ │ ├── serveravg.py
│ │ └── ...
│ ├── heads/ # Statistical classifiers and feature extraction
│ │ ├── extract_features.py
│ │ └── statistical_heads.py
│ └── trainmodel/ # Model and head definitions
│ ├── models.py
│ └── ...
└── utils/ # Data loading, metrics, augmentation and output helpers
