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

目录

  • 虚拟机的安装
    • 简化版(三台)
  • 环境配置
    • 安装Anaconda
    • 创建环境
    • 安装pytorch
    • 关闭防火墙
  • 代码
    • 代码下载
    • 数据集下载
    • 代码修改
    • 上传到虚拟机
  • 虚拟机测试
    • 修改虚拟机的主机名
    • 运行

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

联邦学习框架:FedAdapt: Adaptive Offloading for IoT Devices in Federated Learning 框架的部署实现_第1张图片

虚拟机的安装

简化版(三台)

三台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官网
联邦学习框架:FedAdapt: Adaptive Offloading for IoT Devices in Federated Learning 框架的部署实现_第2张图片

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

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

联邦学习框架:FedAdapt: Adaptive Offloading for IoT Devices in Federated Learning 框架的部署实现_第3张图片
查看是否安裝成功

pip list

联邦学习框架:FedAdapt: Adaptive Offloading for IoT Devices in Federated Learning 框架的部署实现_第4张图片

关闭防火墙

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

代码

代码下载

Github地址:https://github.com/qub-blesson/FedAdapt

数据集下载

联邦学习框架:FedAdapt: Adaptive Offloading for IoT Devices in Federated Learning 框架的部署实现_第5张图片
放在根目录下的 dataset/CIFAR10。他这个README这个路径写的有问题。因为在代码层面。
联邦学习框架:FedAdapt: Adaptive Offloading for IoT Devices in Federated Learning 框架的部署实现_第6张图片
是在 dataset/CIFAR10,不过你可以修改数据集的路径。

代码修改

在根目录的config文件中,这些内容需要修改

联邦学习框架:FedAdapt: Adaptive Offloading for IoT Devices in Federated Learning 框架的部署实现_第7张图片

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

上传到虚拟机

联邦学习框架:FedAdapt: Adaptive Offloading for IoT Devices in Federated Learning 框架的部署实现_第8张图片
激活安装好pytorch 的环境,选择代码上传的位置。

联邦学习框架:FedAdapt: Adaptive Offloading for IoT Devices in Federated Learning 框架的部署实现_第9张图片
整个文件夹全部上传

虚拟机测试

修改虚拟机的主机名

CentOS7 修改主机名

运行

在这里插入图片描述

进入FL_training目录内

联邦学习框架:FedAdapt: Adaptive Offloading for IoT Devices in Federated Learning 框架的部署实现_第10张图片

在服务器端运行

python FedAdapt_serverrun.py --offload True #FedAdapt training
python FedAdapt_serverrun.py --offload False #Classic FL training

先测试False
联邦学习框架:FedAdapt: Adaptive Offloading for IoT Devices in Federated Learning 框架的部署实现_第11张图片

在客户端的两台机子运行

python FedAdapt_clientrun.py --offload True #FedAdapt training
python FedAdapt_clientrun.py --offload False #Classic FL training

node1
在这里插入图片描述
node2
在这里插入图片描述

服务器端

联邦学习框架:FedAdapt: Adaptive Offloading for IoT Devices in Federated Learning 框架的部署实现_第12张图片

你可能感兴趣的:(边缘计算,边缘智能,框架,联邦学习,centos,通信,协同推理)