联邦学习框架:FedAdapt: Adaptive Offloading for IoT Devices in Federated Learning 框架的部署实现


原文发布于 CSDN:https://blog.csdn.net/m0_49683806/article/details/135693760

FedAdapt是一个全面的物联网边缘环境的框架,克服了加速联合学习资源有限的设备上的挑战,减少散兵游勇所产生的物联网设备的计算异质性和适应不同的设备和边缘服务器之间的网络带宽的影响。

在这里插入图片描述

虚拟机的安装

简化版(三台)

三台centos7虚拟机,一台跑服务端,其余两台跑客户端。
安装教程:VMware 安装 CentOS7
配置静态IP:CentOS7 配置静态IP

环境配置

安装Anaconda

CentOS 7上安装Anaconda 详细教程

创建环境

conda create -n pytorch python=3.8.5

上面的命令将创建一个名为myenv的新环境,其中安装了Python 3.8.5。

安装pytorch

pytorch官网
在这里插入图片描述

选CPU版本的吧
复制下载命令。执行。

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu

在这里插入图片描述
查看是否安裝成功

pip list

在这里插入图片描述

关闭防火墙或开放端口

linux(centos7)常用命令 开启关闭防火墙

开放端口

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 是运行服务器端的 IP
  • K 设备数量,一共三台虚拟机,一台客户端+两台客户端。K表示的是客户端的数量
  • HOST2IP 是其余两台虚拟机运行客户端的hostname:IP 的键值对
  • CLIENTS_CONFIG 是其余两台虚拟机运行客户端的IP:序号 的键值对,序号从0开始
  • CLIENTS_LIST 是其余两台虚拟机运行客户端的IP
  • split_layer 初始化分层数,由于K=2,两个就够了

上传到虚拟机

在这里插入图片描述
激活安装好pytorch 的环境,选择代码上传的位置。

在这里插入图片描述
整个文件夹全部上传

虚拟机测试

修改虚拟机的主机名

CentOS7 修改主机名

运行

在这里插入图片描述

进入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

出现这问题
在这里插入图片描述
修改代码
在这里插入图片描述

数据集开始下载

在这里插入图片描述


文章作者: 成大事
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 成大事 !
  目录