PeaceSheep's blog PeaceSheep's blog
首页
  • 分类
  • 标签
  • 归档
相关链接
提建议&咨询&赞赏
GitHub (opens new window)

PeaceSheep

以最简洁、易懂的话解决问题
首页
  • 分类
  • 标签
  • 归档
相关链接
提建议&咨询&赞赏
GitHub (opens new window)
  • 下载器

  • 作业网站管理

  • 联邦学习

    • 框架使用

      • 联邦学习框架flower的安装与模拟
        • 特点
        • 安装
        • 模拟
          • 1. 关于“客户端”的理解
          • 2. 关于flower模拟时内存占用过大的问题
  • 随手写的小项目

  • docker

  • 即时通讯

  • 项目
  • 联邦学习
  • 框架使用
PeaceSheep
2023-03-14
目录

联邦学习框架flower的安装与模拟

Flower (flwr) 是一个用于构建联邦学习系统的框架,官网是:https://flower.dev/ (opens new window)。

# 特点

它的设计基于以下指导原则:可定制化:不同的用例需要不同的联邦学习系统。Flower允许根据每个用例的需求进行广泛的配置。

  1. Flower是一个通用的联邦学习框架,可以支持多种机器学习库和算法,而其他框架如TensorFlow Federated(TFF)和FedML则更依赖于特定的库或算法。
  2. Flower是一个轻量级的联邦学习框架,它只提供了最基本的抽象和接口,让用户可以自由地定义自己的客户端和服务器逻辑,而其他框架如TFF和FedML则提供了更多的内置功能和组件,但也增加了复杂度和限制。
  3. Flower是一个跨平台的联邦学习框架,它可以运行在不同的操作系统和硬件上,而其他框架如TFF则只能运行在Linux上。

# 安装

安装可以使用pip:pip install flwr。如果需要使用pytorch之类的需要额外安装。

# 模拟

flwr除了支持实际的一个server,多个client这种方式,在很多时候我们需要的是调试代码,因此需要单机模拟。一个官方的demo见github (opens new window).

有以下两个需要注意的地方:

# 1. 关于“客户端”的理解

在模拟中,为了节省资源,flower采取的措施是在训练时才会实例化一个客户端,训练完之后会销毁。也就是说客户端是一种无状态的对象,不要在客户端内保存任何内容。在训练前会调用set_paramas函数来设定这个客户端的模型参数,客户端本地保存模型参数是没有意义的。

# 2. 关于flower模拟时内存占用过大的问题

flower的模拟非常占用内存,试试上并不是他的客户端占用,而是服务端。解决办法是调小客户端的进程数。代码实例如下:

server = fl.server.Server(strategy=strategy, client_manager=RLManager())
    server.set_max_workers(1)
    # start simulation
    fl.simulation.start_simulation(
        client_fn=client_fn,
        num_clients=pool_size,
        client_resources=client_resources,
        config=fl.server.ServerConfig(num_rounds=NUM_ROUNDS),
        ray_init_args=ray_init_args,
        server=server,
    )

1
2
3
4
5
6
7
8
9
10
11
12
编辑 (opens new window)
上次更新: 2025/07/08, 16:10:01
班级作业管理系统——使用说明书
ssh聊天室

← 班级作业管理系统——使用说明书 ssh聊天室→

最近更新
01
前端概念梳理
06-26
02
愚蠢错误收集
05-29
03
ubuntu安装g++显示已有但是输入g++又找不到命令
04-15
更多文章>
Theme by Vdoing | Copyright © 2022-2025 PeaceSheep
冀ICP备2022004632号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式