/$$$$$$$$ /$$ /$$ /$$ _ _ U _____ u _ _ U ___ u | $$_____/| $$ |__/ | $$ |'| |'| \| ___"|/ |"| |"| \/"_ \/ | $$ | $$ /$$ /$$$$$$ /$$$$$$ /| |_| |\ | _|" U | | u U | | u | | | | | $$$$$ | $$ | $$|_ $$_/ /$$__ $$ U| _ |u | |___ \| |/__ \| |/__.-,_| |_| | | $$__/ | $$ | $$ | $$ | $$$$$$$$ |_| |_| |_____| |_____| |_____|\_)-\___/ | $$ | $$ | $$ | $$ /$$| $$_____/ // \\ << >> // \\ // \\ \\ | $$ | $$$$$$$$| $$ | $$$$/| $$$$$$$ (_") ("_)(__) (__)(_")("_)(_")("_) (__) |__/ |________/|__/ \___/ \_______/ Version 1.0.1
Paper:FLite: Design and Development of a Flexible and Scalable Lightweight Federated Learning Framework.
文献:FLite:一种灵活可扩展的轻量级联邦学习框架设计与研发
[Software Engineering, School of Computer Science and Technology, WUST, P. Qi(Sensorjang@wust.edu.cn)]
- Linux 或 macOS
- Python 3.6+
- PyTorch 1.3+
- CUDA 9.2+(如果您使用GPU运行)
这里是使用 conda 配置FLite环境的完整命令
Here is the complete command to configure the FLite environment using conda
# create a new conda environment
# 创建一个新的conda环境
conda create -n flite python=3.7 -y
conda activate flite
# 1、CPU only
# 在仅通过CPU计算的设备上运行
conda install pytorch==1.6.0 torchvision==0.7.0 -c pytorch -y
# 2、With GPU
# 在支持GPU的设备上运行
conda install pytorch==1.6.0 torchvision==0.7.0 cudatoolkit=10.1 -c pytorch -y
# install FLite
# 1、本地编译安装FLite
git clone https://github.com/Sensorjang/FLite.git
cd FLite
pip install -v -e .
# 2、pip安装 (from https://pypi.org/project/FLite/1.0.1)
pip install FLite==1.0.1
- 独立仿真训练 Independent Simulation Training
- 分布式训练(基于gRPC通信协议)Distributed Training (based on gRPC communication protocol)
- | LeNet | ResNet18 | ResNet50 | RNN | simple-CNN | VGG9 |
---|---|---|---|---|---|---|
Cifar10 | √ | √ | √ | √ | √ | |
FEMNIST | √ | √ | ||||
Shakespeare | √ | |||||
Cifar100 | √ | √ | √ | √ | √ |
- FedAvg
- FedProx
- Equal Average
- all:使用statedict聚合模型,包括模型参数和持久缓冲区(如BatchNorm统计数据)
- parameters:只聚集模型参数。
- Blowfish
- DES
- Salsa20
支持:iid、niid(用于feminist和shakespeare),以及dir和class(用于cifar系列数据集)
- SGD
- Adam
- python代码中导入配置
- 外部yaml文件入配置
- 混合导入配置
- 使用指令参数传递配置
本地数据库配置,支持sqlite3和mysql
- Simulate ISO: 选定客户端具有等长睡眠时间分布
- Simulate DIR: 使用对称狄利克雷过程对睡眠时间异质性进行采样,以模拟直接异质性
- Simulate REAL: 模拟真实的异构性,即客户端的计算能力不同。使用主流智能手机的真实速度比来模拟睡眠时间的异构性
支持:随机、贪婪、最慢(random, greedy, slowest)
设备异构模拟服务 联邦建模追踪服务 数据集分割处理模块
Flite提供了许多示例,您可以在examples目录下找到它们。
Flite provides many examples, which can be found in the examples directory.
This project is released under the MIT License.