-
Create a virtual environment with
conda create-
conda create -n mvs python=3.8.5 -
conda activate mvs -
pip install torch==1.7.1+cu110 torchvision==0.8.2+cu110 torchaudio==0.7.2 -f https://download.pytorch.org/whl/torch_stable.html -
pip install learn2learn -
pip install tensorboardX -
pip install tensorflow -
pip install sklearn
-
- Run:
python trainer.py --dataset cifar10 --rand 0 --seed_list 42
- Run:
python trainer.py --dataset cifar100 --rand 0 --seed_list 42
- Run:
python trainer.py --dataset cinic --rand 0 --seed_list 42
--loss: What loss to use, for cross-entropy; ce or tirplet; riplet . Default: hybrid
--d_from: How to set the margin of the parameter used for triplet loss, for fixed margin;margin Default: select
--w: Interval Value 50
--control: Non-random way, according to the benchmark maximum way. Default: fixed
--seed_list: Receive a list of how to make a random seed (adjust the result randomness)
--method: Whether episodes are created locally in a decentralized setting, for centralized setting; centralized Default: decentralized
--lr: Learning rate for gradient update. Default: 0.001
--optimizer: Whether to use decay for Adam optimizer. When using a weight decay of 1e-3: 1 Default: 0
--evaluation_unit: Evaluate using the validation set every n round. Default: 50
--activated: Number of the activated clients. Default: 5
--embedder: which model to use.[conv4, lenet,resnet18] Default: lenet
--gamma: loss balancing hyper parameter. Default: 0.5
--rand: Fix the randomness of the PyTorch according to the seed.(adjust the result randomness) Default: 1
-
python trainer.py --exp_name reproduction --loss hybrid --d_from select --w 50 --control fixed --seed_list 0 21 42 --dataset cifar10 --num_user 50 --optimizer 1 --train_shot 20 --train_query 30 --gamma 0.4 -
python trainer.py --exp_name reproduction --loss hybrid --d_from select --w 50 --control fixed --seed_list 0 21 42 --dataset cifar10 --num_user 100 --optimizer 1 --train_shot 20 --train_query 30 --gamma 0.3 -
```python trainer.py --exp_name reproduction --loss hybrid --d_from select --w 50 --control fixed --seed_list 0 21 42 --dataset cifar10 --num_user 500 --optimizer 1 --train_shot 20 --train_query 30 --gamma 0.2 ``
PFL Results Performance Reproduction on CIFAR-100
-
python trainer.py --exp_name reproduction --loss hybrid --d_from select --w 50 --control fixed --seed_list 0 21 42 --dataset cifar100 --num_user 50 --optimizer 0 --shot_500 3 --train_shot 10 --train_query 20 --gamma 0.6 -
python trainer.py --exp_name reproduction --loss hybrid --d_from select --w 50 --control fixed --seed_list 0 21 42 --dataset cifar100 --num_user 100 --optimizer 0 --shot_500 3 --train_shot 10 --train_query 20 --gamma 0.6 -
python trainer.py --exp_name reproduction --loss hybrid --d_from select --w 500 --control fixed --seed_list 0 21 42 --dataset cifar100 --num_user 50 --optimizer 0 --shot_500 3 --train_query 15 --gamma 0.6
-
python trainer.py --exp_name reproduction --loss hybrid --d_from select --w 50 --control fixed --seed_list 0 21 42 --dataset cinic --num_user 50 --optimizer 0 --train_shot 25 --train_query 35 --gamma 0.5 -
python trainer.py --exp_name reproduction --loss hybrid --d_from select --w 50 --control fixed --seed_list 0 21 42 --dataset cinic --num_user 100 --optimizer 0 --train_shot 25 --train_query 35 --gamma 0.5 -
python trainer.py --exp_name reproduction --loss hybrid --d_from select --w 50 --control fixed --seed_list 0 21 42 --dataset cinic --num_user 500 --optimizer 0 --train_shot 20 --train_query 30 --gamma 0.5
-
Triplet Loss (only
$\mathcal{L}_{T}$ )python trainer.py --loss triplet --d_from margin --margin 3.0 --w 50 --dataset cinic --num_user 500 --exp_name triplet --seed_list 0 21 42 --optimizer 0 --train_shot 25 --train_query 35 --gamma 0.5 --lr 0.001 --gpu_number 0 -
Cross-entropy Loss (only
$\mathcal{L}_{S}$ )python trainer.py --loss ce --dataset cinic --num_user 500 --exp_name ce --seed_list 0 21 42 --optimizer 0 --train_shot 20 --train_query 30 --gamma 0.5 --lr 0.001 --gpu_number 0
python trainer.py --loss hybrid --d_from select --w 50 --dataset cifar100 --num_user 100 --exp_name table4_low --low_way 5 --seed_list 0 21 42 --optimizer 0 --train_shot 10 --train_query 20- Random Way
python trainer.py --random_way various --loss hybrid --d_from select --w 50 --dataset cinic --num_user 100 --exp_name table4_random --low_way 3 --seed_list 0 21 42 --optimizer 0 --train_shot 25 --train_query 35
python trainer.py --version eccv --loss hybrid --d_from select --w 50 --dataset cifar100 --num_user 50 --exp_name table5_central --method centralized --seed_list 0 21 42 --optimizer 0 --train_shot 10 --train_query 20
- If the CINIC-10 dataset is not downloaded correctly, you can download it directly from the link and put it in the "'./cinic" folder. https://datashare.is.ed.ac.uk/bitstream/handle/10283/3192/CINIC-10.tar.gz

