联邦学习开源平台Flower:在移动设备上运行联邦学习

Flower官网:https://flower.ai/
官网doc:https://flower.ai/docs/
Flower github:https://github.com/adap/flower

为什么用Flower

Flower可以将预先写好的集中式机器学习代码以联邦学习的方式运行(只需要少量的修改)。并且他可以在windows环境下模拟联邦学习场景,非常适合实验。

Flower开源了很多联邦学习的基线算法的示例,可以轻松入门。

本文主要将一下如何使用Flower,通过对官网给出的quickstart示例,结合其他csdn,给出运行Flower的步骤以及在android上运行联邦学习的示例。

Flower安装

Flower安装需要至少python 3.8版本以上,推荐使用python 3.10 及以上,本文将使用python 3.8 运行下列的示例。
官网安装教程

创建自己的虚拟环境:conda

通过anaconda创建虚拟环境:

conda create -n flwr python=3.8

激活环境

conda activate flwr

直接安装(稳定版):

pip install flwr

注意:直接pip安装的是flower的稳定版本,与官网的版本可能不同。

查看Flower的安装版本

python -c "import flwr;print(flwr.__version__)"

我安装的1.10.0版本。
后面的示例请移至对应版本的doc官网,具体版本的官网在doc官网的左下角Versions可以找到
Flower V-1.10.0的doc地址

Flower实例运行(quickstart pytorch和quickstart tensorflow)

quickstart pytorch

代码参考csdn

编写代码

创建两个文件:client.pyserver.py
client.py:编写客户端运行文件,主要包括传统的机器学习流程代码和Flower客户端类实现。具体如下

# 传统的机器学习流程代码

from collections import OrderedDict

import flwr as fl
import torch
import torch.nn as nn
import torch.nn.functional as F
from torch.utils.data import DataLoader
from torchvision.datasets import CIFAR10
from torchvision.transforms import Compose, Normalize, ToTensor
from tqdm import tqdm


DEVICE = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")

# 定义神经网络模型

class Net(nn.Module):
    def __init__(self) -> None:
        super(Net, self).__init__()
        self.conv1 = nn.Conv2d(3, 6, 5)
        self.pool = nn.MaxPool2d(2, 2)
        self.conv2 = nn.Conv2d(6, 16, 5)
        self.fc1 = nn.Linear(16 * 5 * 5, 120)
        self.fc2 = nn.Linear(120, 84)
        self.fc3 = nn.Linear(84, 10)

    def forward(self, x: torch.Tensor) -> torch.Tensor:
        x = self.pool(F.relu(self.conv1(x)))
        x = self.pool(F.relu(self.conv2(x
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值