Skip to content

Repository files navigation

运行命令

这个代码有DP,fedavg,fednfl,fedRPF,barre算法,fedRPF,barre是我加的,你可以帮我看下逻辑有没有问题。

运行FedAvg算法

python main.py  --nfl "warm_up_rounds=100"  --dataset cifar10 --use_rp False

运行RPF算法+优化噪声

python main.py --use_rp True  --nfl "eps=0.1,privacy=rpf,distort=rpf," --out_dir "./runs_RPF" --global_epoch 100 --noise_type 2
python main.py --use_rp True  --nfl "eps=1,privacy=rpf,distort=rpf" --out_dir "./runs_RPF&noise2" --global_epoch 100 --noise_type 2 --rp_op_nums 5 --rp_ratio 0.3 --rp_eps 1

代码中的fedRPF0.sh是跑仅随机投影滤波器的实验,fedRPF1是跑随机投影滤波器+随机噪声的实验,fedRPF2是随机投影滤波器+优化噪声的实验。

运行BARRE算法

python main.py --nfl "eps=0.1,privacy=barre,distort=barre,barre_noise_type=4" --out_dir "./runs_barre2" --local_epoch 1 --global_epoch 100 --use_rp False

代码中的fedbarre1.sh是跑多分类器(3个分类器)+随机噪声的实验,fedbarre4_2.sh是跑多分类器(5个分类器)+优化噪声的实验,fedbarre4_3.sh是跑多分类器(9个分类器)+随机噪声的实验的实验。fedbarre4_2.sh是跑多分类器(3个分类器)+优化噪声的实验

运行DP算法

python main.py --nfl "eps=0.3,privacy=dp,distort=dp-laplace,clipDP=1.0" --out_dir "./runs_dp" --local_epoch 1  --global_epoch 100 --use_rp False

DP.sh是DP算法的代码

运行fedNFL算法

python main.py --nfl "eps=0.1, privacy=nfl, distort=nfl" --out_dir "./runs_nfl" --local_epoch 1 --global_epoch 100 --use_rp False

fednfl.sh是fednfl的代码。

调整DLG攻击超参数。

python main.py  --nfl "warm_up_rounds=100,dlg_attack_epochs=0-1-2,dlg_iter=1600,dlg_lr=0.01, "  --dataset cifar10 --use_rp False --out_dir "./runs_dlg" 

说明

main.py的fed_init函数是用来初始化数据集和客户端的,然后根据不同的数据集选择不不同的模型,模型在这里更换。inversefed/nn/models.py里面有不同的模型,比如LeNetZhuMNIST,ResNet56等,注意MNIST和Cifar10的数据集不通用。

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages