MiLab-HITSZ/2026LiFedCVESA

GitHub: MiLab-HITSZ/2026LiFedCVESA

FedCVESA 是一个联邦学习实验代码仓库,用于在 non-IID 数据划分下复现论文 v5 版本的联邦训练与客户端数据恢复实验。

Stars: 0 | Forks: 0

# FedCVESA 本仓库包含用于论文草稿中 FedCVESA v5 实验的精简代码发布。保留的实验设置是在 MNIST、Fashion-MNIST 和 CIFAR-10 上使用 alpha=0.5 的 10 客户端 Dirichlet non-IID 划分。 ## 包含内容 - `src/federated_main.py`:主要的联邦训练和 CVEA 恢复入口点。 - `src/models.py`:仅包含 v5 论文模型: - 用于 MNIST 和 Fashion-MNIST 的 `CNNFashion_Enhanced`。 - 用于 CIFAR-10 的 `ResNet18Cifar`。 - `src/options.py`:v5 实验使用的 CLI 选项。 - `src/update.py`、`src/utils.py`、`src/sampling.py`、`src/attack_utils.py`、`src/plot.py`:客户端训练、数据划分、聚合、攻击和绘图辅助工具。 - `scripts_10clients/run_all_rank10_dirichlet05.sh`:最终的 v5 复现脚本。 数据集、日志、`.npy` 指标、检查点、生成的恢复图像、论文图表、结果摘要以及历史消融实验脚本已被有意排除。 ## 环境配置 从仓库根目录安装依赖: ``` pip install -r requirments.txt ``` 依赖文件名保留为 `requirments.txt` 以与原项目保持一致。数据集会在实验首次运行时由 `torchvision` 下载到 `data/` 目录中。 ## 快速检查 语法检查: ``` python -m compileall src ``` 小规模 CPU 健全性测试运行: ``` python src/federated_main.py \ --dataset=mnist \ --model=cnn \ --epochs=1 \ --num_users=10 \ --frac=1.0 \ --iid=0 \ --noniid_mode=dirichlet \ --dirichlet_alpha=0.5 \ --dirichlet_min_size=100 \ --gama=0.5 \ --num_steal=5 \ --num_img_per_client=1 \ --agg_mode=segmented \ --attack_position_mode=spread ``` ## 复现 v5 预览 57 个任务而不实际运行它们: ``` DRY_RUN=1 bash scripts_10clients/run_all_rank10_dirichlet05.sh ``` 运行所有 v5 任务: ``` GPU_LIST="0 1 2 3 4 5 6 7" bash scripts_10clients/run_all_rank10_dirichlet05.sh ``` 该脚本的默认配置为: ``` --num_users=10 --frac=1.0 --iid=0 --noniid_mode=dirichlet --dirichlet_alpha=0.5 --dirichlet_min_size=100 --gama_warmup_epochs=0 --lr_scheduler=cosine --min_lr=0.0001 MNIST/Fashion-MNIST: model=cnn, lr=0.01, local_ep=10, local_bs=16 CIFAR-10: model=resnet18_cifar, lr=0.03, local_ep=1, local_bs=64, cifar_crop_size=32, cifar_normalize=1 ``` 输出结果将生成在 `save/results`、`save/plots`、`save/objects` 和 `scripts_10clients/logs_rank10_dirichlet05` 下;这些路径已被 git 忽略。
标签:Apex, Cutter, PyTorch, 凭据扫描, 数据隐私, 机器学习, 模型训练, 联邦学习, 逆向工具, 非独立同分布数据