原文发布于 CSDN:https://blog.csdn.net/m0_49683806/article/details/135693760
FedAdapt是一个全面的物联网边缘环境的框架,克服了加速联合学习资源有限的设备上的挑战,减少散兵游勇所产生的物联网设备的计算异质性和适应不同的设备和边缘服务器之间的网络带宽的影响。

虚拟机的安装
简化版(三台)
三台centos7虚拟机,一台跑服务端,其余两台跑客户端。
安装教程:VMware 安装 CentOS7
配置静态IP:CentOS7 配置静态IP
环境配置
安装Anaconda
创建环境
conda create -n pytorch python=3.8.5
上面的命令将创建一个名为myenv的新环境,其中安装了Python 3.8.5。
安装pytorch
选CPU版本的吧
复制下载命令。执行。
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu

查看是否安裝成功
pip list

关闭防火墙或开放端口
开放端口
firewall-cmd --zone=public --permanent --add-port=51000/tcp
配置立即生效
firewall-cmd --reload
代码
代码下载
Github地址:https://github.com/qub-blesson/FedAdapt
数据集下载

放在根目录下的 dataset/CIFAR10。他这个README这个路径写的有问题。因为在代码层面。
是在 dataset/CIFAR10,不过你可以修改数据集的路径。
代码修改
在根目录的config文件中,这些内容需要修改

SERVER_ADDR是运行服务器端的 IPK设备数量,一共三台虚拟机,一台客户端+两台客户端。K表示的是客户端的数量HOST2IP是其余两台虚拟机运行客户端的hostname:IP的键值对CLIENTS_CONFIG是其余两台虚拟机运行客户端的IP:序号的键值对,序号从0开始CLIENTS_LIST是其余两台虚拟机运行客户端的IPsplit_layer初始化分层数,由于K=2,两个就够了
上传到虚拟机

激活安装好pytorch 的环境,选择代码上传的位置。

整个文件夹全部上传
虚拟机测试
修改虚拟机的主机名
运行

进入FL_training目录内

在服务器端运行
python FedAdapt_serverrun.py --offload True #FedAdapt training
python FedAdapt_serverrun.py --offload False #Classic FL training
先测试False
在客户端的两台机子运行
python FedAdapt_clientrun.py --offload True #FedAdapt training
python FedAdapt_clientrun.py --offload False #Classic FL training
node1
node2
服务器端

持续训练
可能遇到的问题
ModuleNotFoundError: No module named ‘tqdm’
原因
这是由于环境中缺少了tqdm进度条的安装包,需要使用conda或者pip命令进行安装。
解决方案
安装命令如下:
- pip install tqdm
- conda install tqdm
不用指定版本,直接默认使用最新的即可。
Dataset not found or corrupted
出现这问题
修改代码
数据集开始下载

