python main.py --algorithm fedavg --model mobilenetv2 --C 6 --P 1.0 --dataloader domain --num_rounds 50 --learning_rate 0.01 --batch_size 256 --seed 42 --gpu 0 --unlearn --u_rounds 5 --p_rounds 5 --u_clients 1 --aggregate weighted_scale --class_num 30
python main.py --algorithm fedproto --model mobilenetv2 --C 6 --P 1.0 --dataloader domain --num_rounds 50 --learning_rate 0.01 --batch_size 256 --seed 0 --gpu 1 --unlearn --u_rounds 5 --p_rounds 5 --u_clients 1 --aggregate weighted_scale --class_num 30
python main.py --algorithm fedproto --model mobilenetv2 --C 6 --P 1.0 --dataloader domain --num_rounds 50 --learning_rate 0.01 --batch_size 256 --seed 0 --gpu 0 --unlearn --u_rounds 5 --p_rounds 5 --u_clients 1 --aggregate weighted_scale --class_num 30

python main.py --algorithm fedproto --model mobilenetv2 --C 6 --P 1.0 --dataloader domain --num_rounds 50 --learning_rate 0.01 --batch_size 256 --seed 42 --gpu 1 --aggregate weighted_scale --class_num 30
python main.py --algorithm fedproto --model vgg16 --C 6 --P 1.0 --dataloader domain --num_rounds 50 --learning_rate 0.01 --batch_size 256 --seed 42 --gpu 0 --aggregate weighted_scale --class_num 30
python main.py --algorithm fedproto --model vgg16 --C 4 --P 1.0 --dataloader pacs --num_rounds 50 --learning_rate 0.01 --batch_size 256 --seed 42 --gpu 0 --aggregate weighted_scale --class_num 7

nohup python main.py --algorithm fedproto --model vgg16 --C 4 --P 1.0 --dataloader pacs --num_rounds 100 --learning_rate 0.01 --batch_size 256 --seed 42 --gpu 0 --aggregate weighted_scale --class_num 7 --pretrain > pacs.log 2>&1 &
nohup python main.py --algorithm fedproto --model vgg16 --C 4 --P 1.0 --dataloader domain --num_rounds 100 --learning_rate 0.01 --batch_size 256 --seed 42 --gpu 1 --aggregate weighted_scale --class_num 30 --pretrain > domain.log 2>&1 &

python main.py --algorithm fedproto --model vgg16 --C 4 --P 1.0 --dataloader domain --num_rounds 100 --learning_rate 0.01 --batch_size 256 --seed 42 --gpu 1 --aggregate weighted_scale --class_num 30
python main.py --algorithm fedproto --model vgg16 --C 4 --P 1.0 --dataloader pacs --num_rounds 100 --learning_rate 0.01 --batch_size 256 --seed 42 --gpu 0 --aggregate weighted_scale --class_num 7 --pretrain

python main.py --algorithm fedproto --model mobilenetv2 --C 4 --P 1.0 --dataloader pacs --num_rounds 100 --learning_rate 0.01 --batch_size 128 --seed 42 --gpu 1 --unlearn --u_rounds 5 --p_rounds 5 --u_clients 1 --aggregate weighted_scale --class_num 7 --pretrain
python main.py --algorithm fedavg --model mobilenetv2 --C 4 --P 1.0 --dataloader pacs --num_rounds 100 --learning_rate 0.01 --batch_size 128 --seed 42 --gpu 0 --unlearn --u_rounds 5 --p_rounds 5 --u_clients 1 --aggregate weighted_scale --class_num 7 --pretrain

python main.py --algorithm feddr --model mobilenetv2 --C 4 --P 1.0 --dataloader pacs --num_rounds 100 --learning_rate 0.01 --batch_size 128 --seed 42 --gpu 0 --unlearn --u_rounds 5 --p_rounds 5 --u_clients 1 --aggregate weighted_scale --class_num 7 --pretrain
python main.py --algorithm fedga --model mobilenetv2 --C 4 --P 1.0 --dataloader pacs --num_rounds 100 --learning_rate 0.01 --batch_size 128 --seed 42 --gpu 0 --unlearn --u_rounds 5 --p_rounds 5 --u_clients 1 --aggregate weighted_scale --class_num 7 --pretrain


python main.py --algorithm fedavg --model mobilenetv2 --C 4 --P 1.0 --dataloader domain --num_rounds 100 --learning_rate 0.01 --batch_size 128 --seed 42 --gpu 0 --aggregate weighted_scale --class_num 7 --pretrain
python main.py --algorithm fedga --model mobilenetv2 --C 6 --P 1.0 --dataloader domain --num_rounds 100 --learning_rate 0.01 --batch_size 256 --seed 42 --gpu 0 --unlearn --u_rounds 200 --p_rounds 50 --u_clients 1 --aggregate weighted_scale --class_num 50 --pretrain

python main.py --algorithm feddr --model mobilenetv2 --C 6 --P 1.0 --dataloader domain --num_rounds 100 --learning_rate 0.01 --batch_size 256 --seed 42 --gpu 0 --unlearn --u_rounds 200 --p_rounds 50 --u_clients 1 --aggregate weighted_scale --class_num 50 --pretrain

python main.py --algorithm feddr --model mobilenetv2 --C 6 --P 1.0 --dataloader domain --num_rounds 100 --learning_rate 0.01 --batch_size 256 --seed 42 --gpu 0 --aggregate weighted_scale --class_num 50 --pretrain


# new scripts
# baselines FL domainnet
python main.py --algorithm fedavg --model mobilenetv2 --C 6 --P 1.0 --dataloader domain --num_rounds 100 --learning_rate 0.01 --batch_size 128 --seed 917 --gpu 0 --aggregate weighted_scale --class_num 30 --pretrain --split_num 2


# baselines pretraining domainnet
nohup python main.py --algorithm fedavg --model mobilenetv2 --C 6 --P 1.0 --dataloader domain --num_rounds 200 --learning_rate 0.01 --batch_size 128 --seed 32 --gpu 0 --aggregate weighted_scale --class_num 30 --pretrain --unlearn --split_num 2 > pt.log 2>&1 &
nohup python main.py --algorithm fedavg --model mobilenetv2 --C 6 --P 1.0 --dataloader domain --num_rounds 200 --learning_rate 0.01 --batch_size 128 --seed 32 --gpu 1 --aggregate weighted_scale --class_num 30 --pretrain --unlearn --split_num 2 --bd > bd.log 2>&1 &
nohup python main.py --algorithm retrain --model mobilenetv2 --C 6 --P 1.0 --dataloader domain --num_rounds 200 --learning_rate 0.01 --batch_size 128 --seed 32 --gpu 2 --aggregate weighted_scale --class_num 30 --pretrain --unlearn --split_num 2 > rt.log 2>&1 &

nohup python main.py --algorithm fedavg --model mobilenetv2 --C 6 --P 1.0 --dataloader domain --num_rounds 200 --learning_rate 0.01 --batch_size 128 --seed 32 --gpu 0 --aggregate weighted_scale --class_num 30 --pretrain --unlearn --split_num 1 > pt.log 2>&1 &
nohup python main.py --algorithm fedavg --model mobilenetv2 --C 6 --P 1.0 --dataloader domain --num_rounds 200 --learning_rate 0.01 --batch_size 128 --seed 32 --gpu 0 --aggregate weighted_scale --class_num 30 --pretrain --unlearn --split_num 1 --bd > bd.log 2>&1 &
nohup python main.py --algorithm retrain --model mobilenetv2 --C 6 --P 1.0 --dataloader domain --num_rounds 200 --learning_rate 0.01 --batch_size 128 --seed 32 --gpu 1 --aggregate weighted_scale --class_num 30 --pretrain --unlearn --split_num 1 > rt.log 2>&1 &

# MoDe
python main.py --algorithm MoDe --model mobilenetv2 --C 6 --P 1.0 --dataloader domain --u_rounds 100 --p_rounds 30 --learning_rate 0.01 --batch_size 128 --seed 32 --gpu 0 --aggregate weighted_scale --class_num 30 --pretrain --unlearn --split_num 2 --bd
nohup python main.py --algorithm MoDe --model mobilenetv2 --C 6 --P 1.0 --dataloader domain --u_rounds 100 --p_rounds 30 --learning_rate 0.01 --batch_size 128 --seed 32 --gpu 1 --aggregate weighted_scale --class_num 30 --pretrain --unlearn --split_num 2 &

# split_num =1
python main.py --algorithm MoDe --model mobilenetv2 --C 6 --P 1.0 --dataloader domain --u_rounds 100 --p_rounds 30 --learning_rate 0.01 --batch_size 128 --seed 32 --gpu 2 --aggregate weighted_scale --class_num 30 --pretrain --unlearn --split_num 1 --bd

# TODO
python main.py --algorithm MoDe --model mobilenetv2 --C 6 --P 1.0 --dataloader domain --u_rounds 100 --p_rounds 30 --learning_rate 0.01 --batch_size 128 --seed 32 --gpu 0 --aggregate weighted_scale --class_num 30 --pretrain --unlearn --split_num 2 --bd
nohup python main.py --algorithm federaser --model mobilenetv2 --C 6 --P 1.0 --dataloader domain --u_rounds 100 --p_rounds 30 --learning_rate 0.01 --batch_size 128 --seed 32 --gpu 1 --aggregate weighted_scale --class_num 30 --pretrain --unlearn --split_num 2 --bd &
nohup python main.py --algorithm federaser --model mobilenetv2 --C 6 --P 1.0 --dataloader domain --u_rounds 100 --p_rounds 30 --learning_rate 0.01 --batch_size 128 --seed 32 --gpu 2 --aggregate weighted_scale --class_num 30 --pretrain --unlearn --split_num 1 --bd &

nohup python main.py --algorithm fedrecovery --model mobilenetv2 --C 6 --P 1.0 --dataloader domain --u_rounds 100 --p_rounds 30 --learning_rate 0.01 --batch_size 128 --seed 32 --gpu 3 --aggregate weighted_scale --class_num 30 --pretrain --unlearn --split_num 1 --bd &
nohup python main.py --algorithm fedrecovery --model mobilenetv2 --C 6 --P 1.0 --dataloader domain --u_rounds 100 --p_rounds 30 --learning_rate 0.01 --batch_size 128 --seed 32 --gpu 4 --aggregate weighted_scale --class_num 30 --pretrain --unlearn --split_num 2 --bd &

nohup python main.py --algorithm fedga --model mobilenetv2 --C 6 --P 1.0 --dataloader domain --u_rounds 100 --p_rounds 30 --learning_rate 0.01 --batch_size 128 --seed 32 --gpu 1 --aggregate weighted_scale --class_num 30 --pretrain --unlearn --split_num 1 --bd &
nohup python main.py --algorithm fedga --model mobilenetv2 --C 6 --P 1.0 --dataloader domain --u_rounds 100 --p_rounds 30 --learning_rate 0.01 --batch_size 128 --seed 32 --gpu 2 --aggregate weighted_scale --class_num 30 --pretrain --unlearn --split_num 2 --bd &

# baselines pretraining pacs
nohup python main.py --algorithm fedavg --model mobilenetv2 --C 4 --P 1.0 --dataloader pacs --num_rounds 200 --learning_rate 0.01 --batch_size 128 --seed 32 --gpu 5 --aggregate weighted_scale --class_num 7 --pretrain --unlearn --split_num 2 > pt.log 2>&1 &
nohup python main.py --algorithm fedavg --model mobilenetv2 --C 4 --P 1.0 --dataloader pacs --num_rounds 200 --learning_rate 0.01 --batch_size 128 --seed 32 --gpu 3 --aggregate weighted_scale --class_num 7 --pretrain --unlearn --split_num 2 --bd > bd.log 2>&1 &
nohup python main.py --algorithm retrain --model mobilenetv2 --C 4 --P 1.0 --dataloader pacs --num_rounds 200 --learning_rate 0.01 --batch_size 128 --seed 32 --gpu 4 --aggregate weighted_scale --class_num 7 --pretrain --unlearn --split_num 2 > rt.log 2>&1 &

nohup python main.py --algorithm fedavg --model mobilenetv2 --C 4 --P 1.0 --dataloader pacs --num_rounds 200 --learning_rate 0.01 --batch_size 128 --seed 32 --gpu 0 --aggregate weighted_scale --class_num 7 --pretrain --unlearn --split_num 1 --bd > bd.log 2>&1 &
nohup python main.py --algorithm retrain --model mobilenetv2 --C 4 --P 1.0 --dataloader pacs --num_rounds 200 --learning_rate 0.01 --batch_size 128 --seed 32 --gpu 0 --aggregate weighted_scale --class_num 7 --pretrain --unlearn --split_num 2 > rt.log 2>&1 &
nohup python main.py --algorithm MoDe --model mobilenetv2 --C 4 --P 1.0 --dataloader pacs --u_rounds 100 --p_rounds 30 --learning_rate 0.01 --batch_size 128 --seed 32 --gpu 1 --aggregate weighted_scale --class_num 7 --pretrain --unlearn --split_num 2 --bd &
nohup python main.py --algorithm federaser --model mobilenetv2 --C 4 --P 1.0 --dataloader pacs --u_rounds 100 --p_rounds 30 --learning_rate 0.01 --batch_size 128 --seed 32 --gpu 2 --aggregate weighted_scale --class_num 7 --pretrain --unlearn --split_num 2 --bd &
nohup python main.py --algorithm fedrecovery --model mobilenetv2 --C 4 --P 1.0 --dataloader pacs --u_rounds 100 --p_rounds 30 --learning_rate 0.01 --batch_size 128 --seed 32 --gpu 3 --aggregate weighted_scale --class_num 7 --pretrain --unlearn --split_num 2 --bd &
nohup python main.py --algorithm fedga --model mobilenetv2 --C 4 --P 1.0 --dataloader pacs --u_rounds 100 --p_rounds 30 --learning_rate 0.01 --batch_size 128 --seed 32 --gpu 4 --aggregate weighted_scale --class_num 7 --pretrain --unlearn --split_num 2 --bd &


# TODO
nohup python main.py --algorithm fedkdu --model mobilenetv2 --C 6 --P 1.0 --dataloader domain --u_rounds 100 --p_rounds 30 --learning_rate 0.01 --batch_size 128 --seed 32 --gpu 0 --aggregate weighted_scale --class_num 30 --pretrain --unlearn --split_num 2 --bd &
nohup python main.py --algorithm fedkdu --model mobilenetv2 --C 6 --P 1.0 --dataloader domain --u_rounds 100 --p_rounds 30 --learning_rate 0.01 --batch_size 128 --seed 32 --gpu 1 --aggregate weighted_scale --class_num 30 --pretrain --unlearn --split_num 1 --bd &
nohup python main.py --algorithm fedkdu --model mobilenetv2 --C 4 --P 1.0 --dataloader pacs --u_rounds 100 --p_rounds 30 --learning_rate 0.01 --batch_size 128 --seed 32 --gpu 2 --aggregate weighted_scale --class_num 7 --pretrain --unlearn --split_num 2 --bd &
nohup python main.py --algorithm fedkdu --model mobilenetv2 --C 6 --P 1.0 --dataloader domain --u_rounds 100 --p_rounds 30 --learning_rate 0.01 --batch_size 128 --seed 32 --gpu 0 --aggregate weighted_scale --class_num 30 --pretrain --unlearn --split_num 2 --bd &
nohup python main.py --algorithm fedkdu --model mobilenetv2 --C 6 --P 1.0 --dataloader domain --u_rounds 100 --p_rounds 30 --learning_rate 0.01 --batch_size 128 --seed 32 --gpu 0 --aggregate weighted_scale --class_num 30 --pretrain --unlearn --split_num 2 --bd &




nohup python main.py --algorithm fedavg --model mobilenetv2 --C 4 --P 1.0 --dataloader pacs --num_rounds 200 --learning_rate 0.01 --batch_size 128 --seed 32 --gpu 3 --aggregate weighted_scale --class_num 7 --pretrain --unlearn --split_num 1 --bd > bd.log 2>&1 &
nohup python main.py --algorithm retrain --model mobilenetv2 --C 4 --P 1.0 --dataloader pacs --num_rounds 200 --learning_rate 0.01 --batch_size 128 --seed 32 --gpu 4 --aggregate weighted_scale --class_num 7 --pretrain --unlearn --split_num 1 > rt.log 2>&1 &




# FedEraser
nohup python main.py --algorithm federaser --model mobilenetv2 --C 6 --P 1.0 --dataloader domain --u_rounds 100 --p_rounds 30 --learning_rate 0.01 --batch_size 128 --seed 32 --gpu 0 --aggregate weighted_scale --class_num 30 --pretrain --unlearn --split_num 2 &


nohup python main.py --algorithm federaser --model mobilenetv2 --C 6 --P 1.0 --dataloader domain --u_rounds 100 --p_rounds 30 --learning_rate 0.01 --batch_size 128 --seed 32 --gpu 1 --aggregate weighted_scale --class_num 30 --pretrain --unlearn --split_num 2 --bd &
nohup python main.py --algorithm federaser --model mobilenetv2 --C 6 --P 1.0 --dataloader domain --u_rounds 100 --p_rounds 30 --learning_rate 0.01 --batch_size 128 --seed 32 --gpu 1 --aggregate weighted_scale --class_num 30 --pretrain --unlearn --split_num 1 &
nohup python main.py --algorithm federaser --model mobilenetv2 --C 6 --P 1.0 --dataloader domain --u_rounds 100 --p_rounds 30 --learning_rate 0.01 --batch_size 128 --seed 32 --gpu 1 --aggregate weighted_scale --class_num 30 --pretrain --unlearn --split_num 1 --bd &

# Fedga
nohup python main.py --algorithm fedga --model mobilenetv2 --C 6 --P 1.0 --dataloader domain --u_rounds 100 --p_rounds 30 --learning_rate 0.01 --batch_size 128 --seed 32 --gpu 1 --aggregate weighted_scale --class_num 30 --pretrain --unlearn --split_num 2 &
nohup python main.py --algorithm fedga --model mobilenetv2 --C 6 --P 1.0 --dataloader domain --u_rounds 100 --p_rounds 30 --learning_rate 0.01 --batch_size 128 --seed 32 --gpu 1 --aggregate weighted_scale --class_num 30 --pretrain --unlearn --split_num 2 --bd &
nohup python main.py --algorithm fedga --model mobilenetv2 --C 6 --P 1.0 --dataloader domain --u_rounds 100 --p_rounds 30 --learning_rate 0.01 --batch_size 128 --seed 32 --gpu 1 --aggregate weighted_scale --class_num 30 --pretrain --unlearn --split_num 1 &
nohup python main.py --algorithm fedga --model mobilenetv2 --C 6 --P 1.0 --dataloader domain --u_rounds 100 --p_rounds 30 --learning_rate 0.01 --batch_size 128 --seed 32 --gpu 1 --aggregate weighted_scale --class_num 30 --pretrain --unlearn --split_num 1 --bd &

# Fedcycle
python main.py --algorithm fedsycle --model mobilenetv2 --C 6 --P 1.0 --dataloader domain --u_rounds 100 --p_rounds 30 --learning_rate 0.01 --batch_size 128 --seed 32 --gpu 1 --aggregate weighted_scale --class_num 30 --pretrain --unlearn --split_num 2 --bd
python main.py --algorithm fedga --model mobilenetv2 --C 6 --P 1.0 --dataloader domain --u_rounds 100 --p_rounds 30 --learning_rate 0.01 --batch_size 128 --seed 32 --gpu 1 --aggregate weighted_scale --class_num 30 --pretrain --unlearn --split_num 2 --bd &
python main.py --algorithm fedga --model mobilenetv2 --C 6 --P 1.0 --dataloader domain --u_rounds 100 --p_rounds 30 --learning_rate 0.01 --batch_size 128 --seed 32 --gpu 1 --aggregate weighted_scale --class_num 30 --pretrain --unlearn --split_num 1 &
python main.py --algorithm fedga --model mobilenetv2 --C 6 --P 1.0 --dataloader domain --u_rounds 100 --p_rounds 30 --learning_rate 0.01 --batch_size 128 --seed 32 --gpu 1 --aggregate weighted_scale --class_num 30 --pretrain --unlearn --split_num 1 --bd &


python main.py --algorithm fedga --model mobilenetv2 --C 6 --P 1.0 --dataloader domain --u_rounds 100 --p_rounds 30 --learning_rate 0.01 --batch_size 128 --seed 917 --gpu 0 --aggregate weighted_scale --class_num 30 --pretrain --unlearn
python main.py --algorithm fedsycle --model mobilenetv2 --C 6 --P 1.0 --dataloader domain --u_rounds 100 --p_rounds 30 --learning_rate 0.01 --batch_size 128 --seed 917 --gpu 0 --aggregate weighted_scale --class_num 30 --pretrain --unlearn
python main.py --algorithm fedsycle --model mobilenetv2 --C 4 --P 1.0 --dataloader pacs_dir --u_rounds 100 --p_rounds 30 --learning_rate 0.01 --batch_size 128 --seed 32 --gpu 0 --aggregate weighted_scale --class_num 7 --pretrain --unlearn


# baselines pretraining pacs
python main.py --algorithm retrain --model mobilenetv2 --C 4 --P 1.0 --dataloader pacs_dir --num_rounds 200 --learning_rate 0.01 --batch_size 128 --seed 32 --gpu 1 --aggregate weighted_scale --class_num 7 --pretrain --unlearn --dir_a 0.5
python main.py --algorithm fedavg --model mobilenetv2 --C 4 --P 1.0 --dataloader pacs_dir --num_rounds 200 --learning_rate 0.01 --batch_size 128 --seed 32 --gpu 2 --aggregate weighted_scale --class_num 7 --pretrain --unlearn --dir_a 0.5 --bd

nohup python main.py --algorithm retrain --model mobilenetv2 --C 4 --P 1.0 --dataloader pacs_dir --num_rounds 200 --learning_rate 0.01 --batch_size 128 --seed 917 --gpu 0 --aggregate weighted_scale --class_num 7 --pretrain --unlearn --dir_a 0.5 &
nohup python main.py --algorithm fedavg --model mobilenetv2 --C 4 --P 1.0 --dataloader pacs_dir --num_rounds 200 --learning_rate 0.01 --batch_size 128 --seed 917 --gpu 3 --aggregate weighted_scale --class_num 7 --pretrain --unlearn --dir_a 0.5 --bd &
# Mode Unlearning
python main.py --algorithm MoDe --model mobilenetv2 --C 6 --P 1.0 --dataloader domain --u_rounds 100 --p_rounds 30 --learning_rate 0.01 --batch_size 128 --seed 917 --gpu 0 --aggregate weighted_scale --class_num 30 --pretrain --unlearn
python main.py --algorithm federaser --model mobilenetv2 --C 6 --P 1.0 --dataloader domain --u_rounds 100 --p_rounds 30 --learning_rate 0.01 --batch_size 128 --seed 32 --gpu 0 --aggregate weighted_scale --class_num 30 --pretrain --unlearn
python main.py --algorithm fedrecovery --model mobilenetv2 --C 6 --P 1.0 --dataloader domain --u_rounds 100 --p_rounds 30 --learning_rate 0.01 --batch_size 128 --seed 32 --gpu 0 --aggregate weighted_scale --class_num 30 --pretrain --unlearn --split_num 2

# retrain
python main.py --algorithm retrain --model mobilenetv2 --C 6 --P 1.0 --dataloader domain --u_rounds 100 --p_rounds 30 --learning_rate 0.01 --batch_size 128 --seed 32 --gpu 0 --aggregate weighted_scale --class_num 30 --split_num 2 --class_num 30 --pretrain --unlearn
n
# fedkdu
python main.py --algorithm fedkdu --model mobilenetv2 --C 6 --P 1.0 --dataloader domain --u_rounds 100 --p_rounds 30 --learning_rate 0.01 --batch_size 128 --seed 32 --gpu 0 --aggregate weighted_scale --class_num 30 --split_num 2 --class_num 30 --pretrain --unlearn
