FedAvg论文

论文:Communication-Efficient Learning of Deep Networks
from Decentralized Data
原code
Reproducing

通过阅读帖子进行的了解。

联邦平均算法就是最典型的平均算法之一。将每个客户端上的本地随机梯度下降和执行模型的平均服务器结合在一起。

联邦优化问题

  • 数据非独立同分布

  • 数据分布的不平衡性

  • 用户规模大

  • 通信有限

联邦平均算法

客户端与服务器之间的通信代价比较大,文中提出两种方法降低通信成本:

  • 增加并行性

  • 增加每个客户端计算量

首先提出FedSGD算法,本地执行多次FedSGD,得到FedAvg算法。

  • 选择一定比例客户端参与训练,而不是全部,因为全部的会比客户端的收敛速度慢,模型精度低

  • 该算法将计算量放在了本地客户端,服务器只用于聚合平均,可在平均步骤之前进行多次局部模型的更新,过多的本地迭代轮次会造成过拟合

代码复现

IID、Non-IID的含义:

  • 数据独立同分布,IID,Independent Identically Distribution,数据之间不相互影响,满足同一个分布。

    独立同分布数据,说明训练的样本点具有较好的总体代表性。

  • 非独立同分布,Non-IID,Non-Independent Identically Distribution,实际场景数据很难满足IID的前提假设。

依照帖子对代码文件的介绍,如下图所示:

在这里插入图片描述

我的本地电脑:如下图所示:

在这里插入图片描述

Fed.py

关键原理:Fed.py中的权重平均聚合算法,

def FedAvg(w):
    '''

    :param w: 权重吗?是的,是包含多个用户端模型权重的列表,每个权重相当于一个字典,带有键值
    :return:
    '''
    w_avg = copy.deepcopy(w[0]) # 利用深拷贝获取初始w[0]
    for k in w_avg.keys(): # 遍历每个权重键
        for i in range(1, len(w)):
            w_avg[k] += w[i][k] # 累加
        w_avg[k] = torch.div(w_avg[k], len(w)) # 平均
    return w_avg

参考

【FedAvg论文笔记】&【代码复现】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/696761.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

开发小Tips:切换淘宝,腾讯,官方,yarn,cnpm镜像源,nrm包管理工具的具体使用方式(方便切换镜像源)

由于开发中经常要下载一些软件或者依赖,且大多数的官方源的服务器都在国外,网速比较慢,国内为了方便,国内一些大厂就建立一些镜像,加快下载速度。 1.各大镜像源的切换: 切换淘宝镜像源: npm …

Bio-Info每日一题:Rosalind-06-Counting Point Mutations

🎉 进入生物信息学的世界,与Rosalind一起探索吧!🧬 Rosalind是一个在线平台,专为学习和实践生物信息学而设计。该平台提供了一系列循序渐进的编程挑战,帮助用户从基础到高级掌握生物信息学知识。无论你是初…

数据结构笔记 线性表的查找 顺序,折半,分块查找

顺序查找:从头找到尾,或者从尾找到头 顺序查找的性能: 其中,辅助空间的O(1)用于存放哨兵的 折半查找:向下取整:指当计算的结果不为整数时取小于计算结果的整数。 折半查找的性能&am…

类和对象的学习总结(一)

面向对象和面向过程编程初步认识 C语言是面向过程的,关注过程(分析求解问题的步骤) 例如:外卖,关注点菜,接单,送单等 C是面向对象的,关注对象,把一件事拆分成不同的对象&…

十大排序

本文将以「 通俗易懂」的方式来描述排序的基本实现。 🧑‍💻阅读本文前,需要一点点编程基础和一点点数据结构知识 本文的所有代码以cpp实现 文章目录 排序的定义 插入排序 ⭐ 🧐算法描述 💖具体实现 &#x1f…

记一次Linux下Docker镜像服务器磁盘空间清理

我们开发环境Jenkins构建项目时报服务器磁盘空间不足,导致项目自动化构建部署失败, Docker镜像服务器磁盘空间清理我们做了多次了,之前在清理Docker镜像服务器时走了不少弯路,查了不少Docker镜像服务器空间清理,都大同…

架构设计-全局异常处理器404、405的问题

java web 项目中经常会遇到异常处理的问题,普遍的做法是使用全局异常处理,这样做有以下几种原因: 集中化处理:全局异常处理允许你在一个集中的地方处理整个应用程序中的异常。这有助于减少代码重复,因为你不必在每个可…

C++的string类

目录 一、导入 二、接口学习 1.默认成员函数 2.迭代器相关的函数iterator 3.与容量相关的函数Capacity系列 4.与成员权限相关的函数Element access: 5.修改器相关的函数Modifiers: 6.字符串操作接口函数String operations:​编辑 三、扩展 一、导入 学习过…

修复损坏的Excel文件比你想象的要简单,这里提供几种常见的修复方法

打开重要的Excel文件时遇到问题吗?Microsoft Excel是否要求你验证文件是否已损坏?Excel文件可能由于各种原因而损坏,从而无法打开。但不要失去希望;你可以轻松修复损坏的Excel文件。 更改Excel信任中心设置 Microsoft Excel有一个内置的安全功能,可以在受限模式下打开有…

阿里通义千问 Qwen2 大模型开源发布

阿里通义千问 Qwen2 大模型开源发布 Qwen2 系列模型是 Qwen1.5 系列模型的重大升级。该系列包括了五个不同尺寸的预训练和指令微调模型:Qwen2-0.5B、Qwen2-1.5B、Qwen2-7B、Qwen2-57B-A14B 以及 Qwen2-72B。 在中文和英文的基础上,Qwen2 系列的训练数…

前端开发部署:Visual Studio Code + vue

〇 说明 本教程全部采用默认安装路径,因为在进行自定义路径安装的时候,需要配置各种环境变量,在这个配置过程中,可能出现各种很混乱的问题。 一 安装Node.js 1 下载https://nodejs.org/en 2 按照默认NEXT执行 C:\Program Files…

C++ BFS相关题目

目录 图像渲染 岛屿数量 图像渲染 733. 图像渲染 vis就是标记1有没有被用过 符合条件的都放到队列里,每次出队列一个,判四个, 如果要改的值与当前的值相同直接返回 注意:image[x][y] prev要放在坐标判断的后面&#xff…

深度解析地铁票务系统的技术架构与创新应用

在城市交通体系中,地铁作为一种快速、便捷的公共交通方式,已经成为现代都市生活的重要组成部分。而地铁票务系统的技术架构,则是支撑地铁运营的核心之一。本文将深度解析地铁票务系统的技术架构与创新应用,从系统设计、数据管理、…

PE文件(七)扩大节合并节数据目录

添加shellcode有以下几种的方式: 1.直接在任意节的空白区添加代码 2.新增节添加代码 3.扩大最后一个节添加代码 4.合并节并添加代码 今天我们学习如何扩大节,合并节 扩大节 在上一节的学习中,我们可以通过上移NT头和节表覆盖DOS Stub以…

前端技术回顾系列 08|TS 泛型基础

在微信中阅读,关注公众号:CodeFit。 创作不易,如果你觉得这篇文章对你有帮助,请不要忘了 点赞、分享 和 关注 我的公众号:CodeFit,为我的持续创作提供一些动力。 上篇内容回顾:枚举(Enums) 在上篇文章中,我们详细回顾了 TypeScript 中的 枚举(Enums)。 枚举 是一…

spark第三篇sql

spark第三篇sql sparksql概述sparksql四大特性dataframe概述通过读取数据源创建dataFrameDataFrame常用操作DataSet将RDD转换为DataFrame代码开发sparksql 操作hivesqlsparksql读取mysql表中的数据sparksql将结果数据写入到mysql中 sparksql概述 1、sparksql发展史 shark为spa…

HTML静态网页成品作业(HTML+CSS)—— 环保主题介绍网页(5个页面)

🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,未使用Javacsript代码,共有5个页面。 二、作品演示 三、代…

MQ解决的问题

系统中MQ能解决哪些问题? 1.不同语言的程序使用MQ通信 2.分布式,微服务,之间的通信,实现服务质检解耦 3.高并发实现销峰作用 4.实现异步,提高用户体验。

“程序员职业素养全解析:技能、态度与价值观的融合“

文章目录 每日一句正能量前言专业精神专业精神的重要性技术执着追求的故事结论 沟通能力沟通能力的重要性团队合作意识实际工作中的沟通案例结论 持续学习持续学习的重要性学习方法进步经验结论 后记 每日一句正能量 梦不是为想象,而是让我们继续前往。 前言 在数字…

Python数据分析与机器学习在电子商务推荐系统中的应用

文章目录 📑引言一、推荐系统的类型二、数据收集与预处理2.1 数据收集2.2 数据预处理 三、基于内容的推荐3.1 特征提取3.2 计算相似度3.3 推荐物品 四、协同过滤推荐4.1 基于用户的协同过滤4.2 基于物品的协同过滤 五、混合推荐与评估推荐系统5.1 结合推荐结果5.2 评…