[ICCV2023] FedPerfix: Towards Partial Model Personalization of Vision Transformers in Federated Learning
The code is adapted from https://github.com/TsingZ0/PFLlib
We are still working on improving the readability of the codes and removing unused commands. Please stay tuned!
python=3.8.0
torch=0.13.1
cuda=11.6
For the dependency:
pip install -r requirements.txt
- Change the settings in
dataset/generate_{$DATASET_NAME}.py
python generate_cifar100.py noniid - dir # for practical noniid and unbalanced scenario
(It may take a while to split the data)
Download from Google Drive
We use wandb to log our results. If you don't want to use it, you can remove the related codes and the results are also saved in ./logs
- Go to the
system
folder
cd system
- Run the following commands
-
Set the dataset and FL settings
-
data=cifar100
# Name of the data folder -
nb=100
# number of classes -
nc=64
# number of clients -
jr=0.125
# client sample rate -
nt=4
# number of thread -
config=FedPerfix
# Choose from FedAVG, Local, APFL, PerAVG, FedBN, FedBABU, FedRep, VanillaAttention, and FedPerfix.
python main.py -mtd $config -data $data -nc $nc -jr $jr -nb $nb -nt $nt
For the ablation and other results, please check the details of the code.
- Use
--local_parts
to specify the local parts of the model - Use
--basic_model/-vt
to change the backbone of the model
@inproceedings{sun2023fedperfix,
title={FedPerfix: Towards Partial Model Personalization of Vision Transformers in Federated Learning},
author={Sun, Guangyu and Mendieta, Matias and Luo, Jun and Wu, Shandong and Chen, Chen},
booktitle={Proceedings of the IEEE/CVF International Conference on Computer Vision},
pages={4988--4998},
year={2023}
}