联邦学习安全聚合算法综述(论文解析)以及如何确定自己研究方向的方法
自己写相关论文的方法:
可以重点看看综述类论文的未来研究方向和引言中前人已经做过的内容
联邦学习安全聚合算法综述
auth:江萍 1 通讯作者 李芯蕊 1 赵晓阳 2 杭永凯
摘要
摘要:随着深度学习技术的发展,人工智能在社会的各个方面有着重要的应用,但缺少数据已经成为制约人工智能进一步发展 的重要因素。联邦学习通过共享梯度的方式可以有效利用边缘节点数据,有效解决人工智能模型训练的数据问题。但在联邦学 习中,由于攻击者可以利用共享的梯度发动恶意攻击来窃取用户隐私,所以如何安全上传梯度并进行聚合成为保障联邦学习中 隐私安全的重要课题。因此,本文针对国内外联邦学习安全聚合的相关文献进行研究,分析安全聚合对于联邦学习中隐私保护 的重要性,同时本文对现有的安全聚合方案进行总结,对实现安全聚合的不同技术手段展开分析。
关键词:联邦学习;安全聚合;隐私保护
联邦学习相关概念
为了满足人工智能使用过程中的隐私保护要求,Google 公司在 2017 年提出联邦学习这一概念。
联邦学习的参与方包括两个角色,分别是客户端和服务器。在每次模型训练 过程中,客户端在利用本地训练一个子模型,然后将子模型 而不是数据上传到客户端。客户端在收到所有客户端的子模 型后对子模型进行聚合得到最终的全局模型。在这个过程中 既使用了所有的本地数据,也保证了用户私人数据不出域, 通过共享梯度的方式实现数据的“可用不可见”,保证数据使 用的过程合规合法,从而促使更多的数据持有者参与模型训 练,扩大数据规模,提高模型性能。
一、目前研究情况
Huang 等人[5] 提出一种个性化联邦学习的方案解决联邦学习中数据异质性 导致的收敛速度慢等问题,Chai 等人[6]利用联邦学习实现了 一种保证用户隐私的推荐系统,Sun 等人[7]利用神经网络中的 量化技术减小联邦学习的模型规模,提高通信效率。
虽然联邦学习诞生的初衷是为了解决多方参与人工智能模型训练过 程中的隐私问题,但有很多文献指出联邦学习仍然存在安全 漏洞与隐私泄露风险。联邦学习期望通过上传梯度而不是直 接上传数据来保证参与方的数据隐私,但是后续的研究[8]发 现攻击者可以通过反转梯度还原训练数据,这种攻击方式增 加了联邦学习的隐私泄露风险。除此之外,攻击者还可以伪 装成联邦学习参与方,通过本地模型和全局模型对其他参与 方的隐私进行推断攻击[9]。因此,针对联邦学习的隐私增强成 为联邦学习安全的重要研究内容。
而大部分数据持有方出于隐私保护等方面 的考虑并不会直接提供数据。这种现象也被称为“数据孤岛”。
2.1联邦学习原理与分类
联邦学习最早由 McMahan 等人[4]提出,并命名为 FedAvg 算法。在 FedAvg 算法中,主要角色有客户端与服务端两种, 客户端提供数据进行子模型的训练,服务端聚合所有客户端 的子模型生成全局模型。一次典型的联邦学习过程包含以下 步骤:
1.所有客户端利用本地数据在本地训练一个子模型,并 将子模型上传到服务端;
2.服务端在收集到所有客户端发送的子模型后对模型进 行聚合,生成全局模型。
3.服务端将全局模型发送至所有参与方。 在这个过程中,客户端的数据并没有进行传输,而是通 过上传梯度来保证参与方的数据隐私。
由于联邦学习参与方的异质性,一般通过数据的性质将 联邦学习分为横向联邦学习、纵向联邦学习和迁移联邦学习。 对于这三种不同的联邦学习方式,主要通过数据与特征的对 齐位置决定。如果参与联邦学习的数据特征一致,数据条目 不一致,即通过扩展样本的数量增加模型训练的精度,则称 之为横向联邦;例如不同地区的银行进行联邦学习,由于银 行业务相同但地区不同,所以样本不同但特征相同。如果参 与联邦学习的数据条目一致,特征不一致,即通过联邦学习 扩展已有数据的特征空间,则称之为纵向联邦;例如同一地 区的银行和保险公司进行联邦学习,由于业务不同但地区相 同,所以样本相同但特征不同。如果参与联邦学习的数据条 目与特征都不一致,则称之为迁移联邦;例如不同地区的银 行和保险公司参与联邦学习,特征与数据都不相同
2.2 联邦学习中的隐私与安全问题
在深度学习特别是分布式深度学习中,直接上传数据进 行训练会导致参与者的隐私泄露,所以联邦学习通过上传梯 度来保证参与者的隐私。但后来有研究证明,梯度也会导致 参与者的隐私泄露。除此之外,由于联邦学习多参与方、多轮 通信等特点,联邦学习面临着更大的安全与隐私风险:无法 保证参与方的合法性,攻击者可以伪装成合法参与者或通过 监听信道发起攻击。
2.2.1 联邦学习中的安全问题
针对联邦学习的安全问题主要包含两类,一类是由于联 邦学习中多轮通信引起的,一类是联邦学习中各参与方身份 不完全可信引起的。对于多轮通信引起的安全问题主要还是 基于传统的安全视角:在梯度的传输过程中容易被攻击者监 听、窃取甚至修改。而由于参与方身份引起的安全问题与深 度学习原生的安全性相关,例如攻击者伪装成为合法的参与 方,发送恶意梯度来破坏模型性能。此外,目前针对联邦学习 安全性的研究大多将服务器的性质也做了规定,一般认为联 邦学习中的聚合服务器是“诚实且好奇的”,即服务器会“诚实” 执行预先设定好的程序,但会对执行的内容感到“好奇”。对于 联邦学习中的安全问题,本节将介绍具有代表性的投毒攻击 以及后门攻击。
(1)投毒攻击:针对机器学习领域的投毒攻击最早由 Biggo 等人[10]提出,其攻击方式主要通过翻转数据标签来破 坏支持向量机性能的形式实现。而在联邦学习中,由于参与 方数量庞大且身份无法保障,攻击者可以伪装成合法参与者 《网络安全技术与应用》2024 年第 9 期 安全模型、算法与编程 ‖49‖ 并篡改上传的梯度,达到攻击的效果。一般而言,对于投毒攻 击可以分为数据投毒和模型投毒[11],其区别主要在于发起攻 击的方式。数据投毒主要通过修改数据信息以达到降低全局 模型性能的效果,例如 Shafahi 等人[12]提出一种通过在现有数 据集中添加噪声的方式进行数据投毒。Zhang 等人[13]使用生 成对抗网络(Generative Adversarial Networks,GAN)生成中 毒数据进行攻击。对于模型投毒,攻击者主要通过对上传的 梯度进行篡改从而达到对全局模型性能损耗的目的。Rong 等 人[14]针对联邦推荐系统提出一种利用公共数据来近似特征向 量,并进一步设计更加隐蔽的中毒梯度,从而达到投毒攻击 的效果。Zhang 等人[15]利用 GAN 学习其他良性梯度的特点, 并生成与良性梯度相似的中毒梯度。在中毒攻击中有一种比 较特殊的形式,即攻击者的数量占比超过二分之一。在这种 情况下,较为常见的投毒攻击防御手段都无法生效,这种情 况也被称为联邦学习中的拜占庭问题[16]。
(2)后门攻击:投毒攻击的主要目的在于通过恶意梯度 或者恶意数据来降低全局模型的准确度,而后门攻击是在不 影响全局模型精度的情况下降低模型在某一类数据上准确度, 其攻击手段也是通过数据投毒或模型投毒实现,因此在联邦 学习中,许多研究者将后门攻击归纳为特殊的投毒攻击[17]。 针对深度学习的后门攻击最早由 Chen 等人[18]提出,通过注 入少量中毒实例就可以实现对神经网络的后门攻击。在联邦 学习领域,Sun 等人[19]讨论了联邦学习中后门攻击的可能性 与潜在防御手段,并实验证明了攻击的有效性。Fang 等人[20] 则提出一种在拜占庭方式下的投毒攻击方案,能够在 Krum[21]、 Trimmed mean[22]等主流的防御方案下依然生效。
2.2.2联邦学习中的隐私问题
上文对联邦学习面临的安全问题进行了简单的总结,实 际上联邦学习面临的问题除了安全问题之外还有隐私问题。 安全问题主要目的在于破坏联邦学习模型的准确性等性能, 隐私问题主要目的在于获取参与方的各类隐私信息,不对模 型准确性进行破坏。联邦学习的隐私问题主要来自模型反演 攻击[23],模型反演攻击能够通过梯度反向训练模型来还原训 练数据。而联邦学习中训练过程在客户端一侧完成,且客户 端通过梯度上传来完成聚合,这种设置大幅增加了联邦学习 遭受模型翻转攻击的可能性,导致联邦学习的隐私泄露风险 急剧增加。针对联邦学习中数据隐私的攻击方式主要包括推 断攻击与重建攻击两种[24]。 (1)推断攻击:推断攻击指攻击者利用模型的中间参数 或其他模型相关信息来推断用户以及模型的敏感属性。例如 Shokri 等人[25]通过推断攻击可以推测某条数据是否存在于训 练集中。正如上文所说,由于联邦学习的梯度信息完全公开, 所以增加了遭受推断攻击的可能性。Melis 等人[26]在联邦学习 中实现了推断攻击,证明了共享梯度潜在的隐私泄露风险。 (2)重建攻击:重建攻击指攻击者利用模型得到中间参 数或其他模型相关信息来重建训练数据。重建攻击的思路来 自模型反演攻击,Zhu 等人[8]提出的梯度泄露攻击不需要任何 辅助数据和额外的训练,使用优化的方式,从梯度数据中直 接恢复训练数据。之后 Ren 等人[27]提出一种利用 GAN 来重 建图像数据的联邦学习重建攻击方法。
3 梯度泄露攻击与安全聚合
梯度泄露攻击的提出导致联邦学习无法通过上传梯度来 保护数据隐私,因此研究人员通过安全聚合来保证联邦学习 的梯度可以安全上传并进行聚合。本章将介绍梯度泄露攻击 以及常见的安全聚合方案。
3.2 安全聚合方案
为了防止攻击者通过梯度来重建用户隐私,目前较为主流的解决方案为安全聚合,通过密码学手段或隐私增强技术 来防止攻击者直接获得梯度。但是安全聚合的一个问题在于, 如何对加密后或者隐私增强后的梯度进行聚合。此外,目前 大多数方案都假设联邦学习中聚合服务器“诚实且好奇”,这 进一步加大了安全聚合的难度。对于一次聚合来说,需要达 到以下条件:
(1)每个客户端上传增强后的梯度,攻击者、服务器或 其他客户端无法直接获得原梯度;
(2)服务器收到所有梯度后在服务器端进行聚合,聚合 后的梯度是透明的,但聚合前与聚合中的梯度对于服务器仍 然不可见;
(3)由于联邦学习中的设备异质性,部分客户端可能会 因为网络或设备故障无法参与聚合,聚合方案需要考虑故障 设备退出的处理方案。 除了以上三点之外,安全聚合方案还需要考虑客户端选 择、聚合效率等因素,本章将介绍目前较为主流的安全聚合 方案。
除了以上三点之外,安全聚合方案还需要考虑客户端选 择、聚合效率等因素,本章将介绍目前较为主流的安全聚合 方案。
3.2.1 基于掩码的安全聚合方案
基于掩 码的方案利用随机数隐藏真实的梯度,该随机数也就是掩码。
3.2.2 基于多方安全计算的安全聚合方案
多方安全计算最早可以追溯到百万富翁问题,如果两个 富翁希望比较他们之间的财富值,但又不想让对方或第三方 知道他们财富的具体值。基于这个问题产生了多方安全计算 这个概念。对应到联邦学习中,每个参与方都期望能够将自 己上传的梯度进行聚合,但又不希望透露自己上传梯度的真 实值,这恰好符合多方安全计算的特质。目前较为常见的多 方安全计算方法包括混淆电路、秘密共享等。而在联邦学习 安全聚合中,较为经典的方案就是通过秘密共享实现隐私保 护的联邦安全聚合。
3.2.3 基于同态加密的安全聚合方案
3.2.4 基于差分隐私的安全聚合方案
4 联邦学习未来研究方向(写新论文的话可以重点看看这章)
即使目前联邦学习存在隐私泄露、效率较低、异质性问 题等缺陷,但不可否认联邦学习仍然能够有效利用不同持有 方的数据进行训练,未来关于联邦学习的研究方向将在提高隐私保护性能、提高效率、解决异质性这几个方面展开。 在提高隐私保护性能方面,进一步研究安全攻击以及隐 私泄露方法,通过差分隐私、同态加密等隐私增强方法来保 证联邦学习中的隐私安全是十分必要的。特别是如何将安全 聚合与抵抗投毒攻击的方法进行结合将是联邦学习安全与隐 私方面研究的重点。在效率方面,需要进一步提高联邦学习 的模型训练效率,减少通信开销。研究将重点放在降低模型 更新传输的数据量、提高模型更新的压缩效率、优化模型结 构等方面,以进一步提高联邦学习的实际可行性。关于异质 性,则需要通过个性化联邦学习等方案进行优化。
相关文章:
联邦学习安全聚合算法综述(论文解析)以及如何确定自己研究方向的方法
自己写相关论文的方法: 可以重点看看综述类论文的未来研究方向和引言中前人已经做过的内容 联邦学习安全聚合算法综述 auth:江萍 1 通讯作者 李芯蕊 1 赵晓阳 2 杭永凯 摘要 摘要:随着深度学习技术的发展,人工智能在社会的各个方面有着重要…...
【JAVA 笔记】12 带有数据库文件的完整的JDBC访问例子,命令行界面
【JAVA 笔记】12 带有数据库文件的完整的JDBC访问例子,命令行界面 代码结构解析 1. 导入必要的包 import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; import java.sql.PreparedStatement; impo…...
基于java+SpringBoot+Vue的在线宠物用品交易网站设计与实现
项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: Springboot mybatis Maven mysql5.7或8.0等等组成&#x…...
智慧社区管理系统平台提升物业运营效率与用户体验
内容概要 智慧社区管理系统平台是一个集成了多项功能的综合性解决方案,旨在通过先进的技术手段提升物业管理的效率和居民的生活质量。该平台不仅关注物业运营的各个方面,还强调用户体验的重要性。随着科技的发展,社区管理方式正发生着翻天覆…...
el-table-column自动生成序号在序号前插入图标
实现效果: 代码如下: 在el-table里加入这个就可以了,需要拿到值可以用scope.$index <el-table-column type"index" label"序号" show-overflow-tooltip"true" min-width"40">…...
深度学习之目标检测的常用标注工具
1 LabelImg LabelImg 是一款开源的图像标注工具,标签可用于分类和目标检测,它是用 Python 编写的,并使用Qt作为其图形界面,简单好用。注释以 PASCAL VOC 格式保存为 XML 文件,这是 ImageNet 使用的格式。 此外&…...
「Mac玩转仓颉内测版21」基础篇1 - 仓颉程序的基本组成
本篇将系统介绍Cangjie编程语言中程序的基本组成部分,涵盖 main 函数的定义、包与模块的使用、变量类型、作用域和代码结构原则,帮助开发者理解Cangjie程序的整体结构。 关键词 程序入口点main函数包与模块变量类型与作用域值类型与引用类型代码结构与规…...
【计算机网络】解决bind error
服务器有时可以立即重启,有时候无法立即重启 — bind error 首先要知道:四次挥手动作完成之后,主动断开连接的一方要维持一段时间的TIME_WAIT bind error原因:因为是服务器主动断开的,所以服务器要去维持TIME_WAIT状…...
【SVN和GIT】版本控制系统详细下载使用教程
文章目录 ** 参考文章一、什么是SVN和GIT二、软件使用介绍1 SVN安装1.1 服务端SVN下载地址1.2 客户端SVN下载地址2 SVN使用2.1 服务端SVN基础使用2.1.1 创建存储库和用户成员2.1.2 为存储库添加访问人员2.2 客户端SVN基础使用2.2.1 在本地下载库中的内容2.2.2 版本文件操作--更…...
初识 Pynecone:构建现代化 Web 应用的 Python 框架
初识 Pynecone:构建现代化 Web 应用的 Python 框架 引言 在 Web 开发的世界里,Python 是后端开发的常客,但如果想用 Python 直接构建现代化的前端应用会怎样?这正是 Pynecone 框架的用武之地!Pynecone 是一个全栈 Pyt…...
Go-RPC关键指标分析与企业实践
1.稳定性-保障策略 熔断:保护调用方 限流:保护被调用方 超时控制:避免浪费 2.稳定性-请求成功率(用重复发送 负载均衡) 3.稳定性-长尾请求(用备份请求) 4.稳定性-注册中间件 易用性:…...
社交电商专业赋能高校教育与产业协同发展:定制开发AI智能名片及2+1链动商城小程序的创新驱动
摘要:本文围绕社交电商有望成为高校常态专业这一趋势展开深入探讨,剖析国家政策认可下其学科发展前景,着重阐述在专业建设进程中面临的师资短缺及实践教学难题。通过引入定制开发AI智能名片与21链动商城小程序,探究如何借助这些新…...
Ubuntu下安装Qt
1.如图1所示,在Index of /archive上下载安装包; 图1 2.将图1安装包下载好之后,通过共享文件夹的方式拷贝到ubutntu,如图2所示; 图2 3.如图3所示,执行chmod x qt-creator-opensource-linux-x86_64-10.0.2.…...
《FreeRTOS任务删除篇》
任务删除函数 源码1. 进入临界区1.1 第一步1.2 第二步1.3 第三步1.4 第四步 2. 获取待删除任务的任务控制块TCB3. 从就绪/延迟列表中删除任务4. 从事件列表中删除任务5. 如果待删除任务是当前运行的任务6. 如果待删除任务是其它任务7. 退出临界区7.1 第一步7.2 第二步7.3 第三步…...
取电快充协议芯片,支持全协议、内部集成LDO支持从UART串口读取电压电流消息
H004D 是一款支持全协议的受电端诱骗取电协议芯片,支持宽电压输入 3.3V~30V,芯片内部集成LDO,可输出 3.3V电压, 支持 通过UART 串口读取电压电流,支持定制功能,芯片采用QFN_20封装,线路简单,芯片…...
Linux:自定义Shell
本文旨在通过自己完成一个简单的Shell来帮助理解命令行Shell这个程序。 目录 一、输出“提示” 二、获取输入 三、切割字符串 四、执行指令 1.子进程替换 2.内建指令 一、输出“提示” 这个项目基于虚拟机Ubuntu22.04.5实现。 打开终端界面如图所示。 其中。 之前&#x…...
git 基础之 merge 和 rebase 的比较
在团队软件开发过程中,代码合并是一个基本且频繁执行的任务。 Git 提供了多种合并代码的策略,其中最常用的是 merge 和 rebase。 尽管二者的终极目标是相同的——整合代码变更——它们的方法和推荐的使用场景却有所区别。本文将详细介绍和比较这两种策…...
pve 磁盘选错位置修改
选中磁盘选择磁盘操作,移动存储 改到你要迁移的位置,迁移后原来的文件如果没选择删除源不会删除,需要确认数据没问题后选择相应的文件,如果有快照,快照可能也需要提前删除,删除前请做好备份。...
C语言第十二周课——有趣的小程序
目录 1.我是猪关机程序 1.1dos命令(强制关机) 1.2思路 1.3源码 2.猜数字 2.1介绍 2.2思路 2.3源码 1.我是猪关机程序 效果:运行程序后电脑在60s后关机,如果输入“我是猪”则取消关机;如果输入“你是猪”则立即关机&…...
【Linux学习】【Ubuntu入门】1-7 ubuntu下磁盘管理
1.准备一个U盘或者SD卡(插上读卡器),将U盘插入主机电脑,右键点击属性,查看U盘的文件系统确保是FAT32格式 2.右键单击ubuntu右下角图标,将U盘与虚拟机连接 参考链接 3. Ubuntu磁盘文件:/dev/s…...
解决Windows + Chrome 使用Blob下载大文件时,部分情况下报错net:ERR_FAILED 200 (OK)的问题
背景: 部分线上用户反馈,下载文件会报错,但重启电脑又好了。测试无法复现。遂远程客户,发现在下载超过一定阈值大小的文件时,会报错。 但直接点击下载链接,可以正常下载 查阅代码,以前的写法是…...
SpringBoot多文件上传
多文件上传是在单文件上传的基础上修改而来,不了解单文件上传可以参考上一篇。以下在将修改部分展示如下: 一、修改upload.html文件: <!DOCTYPE html> <html> <head> <meta charset"UTF-8"> <title&g…...
Jenkins修改LOGO
重启看的LOGO和登录页面左上角的LOGO 进入LOGO存在的目录 [roottest-server01 svgs]# pwd /opt/jenkins_data/war/images/svgs [roottest-server01 svgs]# ll logo.svg -rw-r--r-- 1 jenkins jenkins 29819 Oct 21 10:58 logo.svg #jenkins_data目录是我挂载到了/opt目录&…...
幼儿园管理系统|Java|SSM|Vue| 前后端分离
【重要①】前后端源码万字文档部署文档 【重要②】正版源码有问题包售后 【包含内容】 【一】项目提供非常完整的源码注释 【二】相关技术栈文档 【三】源码讲解视频 【其它服务】 【一】可以提供远程部署安装,包扩环境 【…...
Unity 实现界面拖拽功能的脚本,通过IDragHandler 实现
using System; using System.Collections.Generic; using UnityEngine; using UnityEngine.EventSystems;namespace Assets.Scripts._1024 {class EVENTdome : MonoBehaviour, IPointerDownHandler, IBeginDragHandler, IDragHandler{//Unity 事件处理的几种方式//1 通过编辑…...
【042A】基于51单片机门禁系统【Proteus仿真+Keil程序+报告+原理图】
☆、设计硬件组成:51单片机最小系统RFID读卡器继电器蜂鸣器LED灯。 1、设计采用STC89C51/52、AT89C51/52、AT89S51/52作为主控芯片; 2、通过RC522读卡器读取IC卡信息,信息匹配继电器吸合门锁打开; 3、可通过上位机对IC卡进行注…...
数据库中的增删改查操作、聚合函数、内置函数、分组查询
数据库中的增删改查操作、聚合函数、内置函数、分组查询 CRUD简介Create 新增语法示例单⾏数据全列插⼊单⾏数据指定列插⼊多⾏数据指定列插⼊ Retrieve 检索语法⽰例构造数据 Select全列查询指定列查询查询字段为表达式为查询结果指定别名语法⽰例 结果去重查询 Order by 排序…...
递归------深度优先搜索
深度优先搜索(Depth-First Search,简称DFS)是一种用于遍历或搜索树或图的算法。它从一个顶点开始,尽可能深地搜索树的分支。深度优先搜索沿着一条路径深入,直到无法继续为止,然后回溯并尝试其他路径。这种搜…...
三十一、构建完善微服务——API 网关
一、API 网关基础 系统拆分为微服务后,内部的微服务之间是互联互通的,相互之间的访问都是点对点的。如果外部系统想调用系统的某个功能,也采取点对点的方式,则外部系统会非常“头大”。因为在外部系统看来,它不需要也没…...
【大语言模型】ACL2024论文-20 SCIMON:面向新颖性的科学启示机器优化
【大语言模型】ACL2024论文-20 SCIMON:面向新颖性的科学启示机器优化 目录 文章目录 【大语言模型】ACL2024论文-20 SCIMON:面向新颖性的科学启示机器优化目录摘要研究背景问题与挑战如何解决创新点算法模型实验效果推荐阅读指数:★★★★☆ …...
GRU (门控循环单元 - 基于RNN - 简化LSTM又快又好 - 体现注意力的思想) + 代码实现 —— 笔记3.5《动手学深度学习》
目录 0. 前言 1. 门控隐状态 1.1 重置门和更新门 1.2 候选隐状态 1.3 隐状态 2. 从零开始实现 2.1 初始化模型参数 2.2 定义模型 2.3 训练与预测 3 简洁实现 4. 小结 0. 前言 课程全部代码(pytorch版)已上传到附件看懂上一篇RNN的所有细节&am…...
C++头文件大全(要是还有请帮忙)
以下是 C 中常见的各类头文件分类列举(但实际远不止这些,随着标准库扩充及第三方库使用会有更多): 输入 / 输出流相关头文件 <iostream>:用于标准输入输出,定义了 cin、cout 等对象。<fstream>…...
免费好用的静态网页托管平台全面对比介绍
5个免费好用的静态网页托管平台全面对比 前言 作为一名前端开发者,经常会遇到需要部署静态网页的场景。无论是个人项目展示、简单的游戏demo还是作品集网站,选择一个合适的托管平台都很重要。本文将详细介绍5个免费的静态网页托管平台,帮助…...
【电路笔记 TMS320F28335DSP】开发环境 CCSTUDIO IDE配置+工程配置
下载 CCSTUDIO IDE 安装 CCSTUDIO IDE 直接点击下一步即可 controlSUITE™(可选) controlSUITE™ 软件套件:C2000™ 微控制器的必备软件和开发工具CCS 的 controlSUITE™ 是 Texas Instruments (TI) 提供的一个综合软件平台&…...
org.apache.log4j的日志记录级别和基础使用Demo
org.apache.log4j的日志记录级别和基础使用Demo,本次案例展示,使用是的maven项目,搭建的一个简单的爬虫案例。里面采用了大家熟悉的日志记录插件,log4j。来自apache公司的开源插件。 package com.qian.test;import org.apache.log…...
设计LRU缓存
LRU缓存 LRU缓存的实现思路LRU缓存的操作C11 STL实现LRU缓存自行设计双向链表 哈希表 LRU(Least Recently Used,最近最少使用)缓存是一种常见的缓存淘汰算法,其基本思想是:当缓存空间已满时,移除最近最少使…...
shell(7)forwhile
for循环: for i in seq 1 100 do echo $i donefor i in seq 1 100 do 部分: for 是 bash 中的循环关键字,用于开启一个循环结构。 i 是定义的循环变量,在每次循环过程中,它会被赋予不同的值。 seq 1 100 这部分&a…...
VSCode打开c#项目报错:DotnetAcquisitionTimeoutError
VSCode打开c#项目,会自动下载.NET环境,下载不了报超时,详情如下: ms-dotnettools.csharp tried to install .NET 8.0.11~x64 but that install had already been requested. No downloads or changes were made. ms-dotnettools.…...
《生成式 AI》课程 作业6 大语言模型(LLM)的训练微调 Fine Tuning -- part1
资料来自李宏毅老师《生成式 AI》课程,如有侵权请通知下线 Introduction to Generative AI 2024 Spring 该文档主要介绍了国立台湾大学(NTU)2024 年春季 “生成式人工智能(GenAI)” 课程的作业 5(GenAI HW…...
SQLynx让数据库变得简单!
SQLynx让数据库管理和开发变得更简单,SQLynx是一款旨在简化飞客使用体验的创新型工具,它为数据库管理者、数据库分析师和开发人员提供了一个直观、易用、高效的平台,首先,SQLynx拥有直观友好的用户界面。无论您是新建还是导表&…...
#Uniapp篇:变量v-if 和 v-show 区别.sync 修饰符宽屏适配指南Pinia内置了
let that this 如果在某些methods中this被指向了其他内容,则需要提前把this赋值给另一个变量,比如let that this。 <script>export default {data() {return {connectedWifi:""}},methods: {buttonClick: function () {const that …...
EMD-KPCA-Transformer多变量回归预测!分解+降维+预测!多重创新!直接写核心!
EMD-KPCA-Transformer多变量回归预测!分解降维预测!多重创新!直接写核心! 目录 EMD-KPCA-Transformer多变量回归预测!分解降维预测!多重创新!直接写核心!效果一览基本介绍程序设计参…...
【数据结构】二叉树(2)
目录 1. 二叉树的遍历 前序遍历 中序遍历 后序遍历 2. 计算二叉树中的节点个数 3. 计算二叉树中叶子节点个数 4. 计算二叉树的深度 5. 计算二叉树第k层节点个数 6. 二叉树基础练习 7. 二叉树的创建 8. 二叉树的销毁 9. 层序遍历 10. 判断二叉树是否为完全二叉树 1…...
常用服务器运维软件之 WGCLOUD(国产)介绍
WGCLOUD是一款免费开源的运维监控软件,轻量高效,部署方便,上手简单,界面简单流畅 WGCLOUD是国产运维软件,可以适配大部分的信创环境,比如麒麟、统信等操作系统 WGCLOUD具体支持监控的操作系统如下&#x…...
shell
第四章 shell中的变量 4.1 系统变量 1.常用系统变量 $HOME ,$PWD,$SHELL ,$USER 4.2 自定义变量 1.变量值(等号两边没有空格) 2.撤销变量:unset变量 3.声明静态变量:readonly 变量,注意:不能unset 4.变…...
Target-absent Human Attention
Abstract 预测人类注视行为对于构建能够预测用户注意力的人机交互系统非常重要。已经开发出计算机视觉模型来预测人们在搜索目标物体时的注视点。但当目标不存在于图像中时,又该如何处理呢?同样重要的是要了解当人们找不到目标时,他们如何进行搜索,以及何时停止搜索。在本文…...
Objective-C 1.0和2.0有什么区别?
Objective-C ObjC比较小众,在1980年左右由Stepstone公司的Brad Cox和Tom Love发明。后来NeXT公司获得ObjC语言使用权,再后来到1996年NeXT被苹果公司收购也变成苹果公司使用,Mac市场占有率本身就不高,ObjC没有太多程序员。在移动互…...
06 —— Webpack优化—压缩过程
css代码提取后想要压缩 —— 使用css-minimizer-webpack-plugin插件 下载 css-minimizer-webpack-plugin 本地软件包 npm install css-minimizer-webpack-plugin --save-dev 配置 webpack.config.js 让webpack拥有该功能 const CssMinimizerPlugin require(css-minimizer-…...
【探寻密码的奥秘】-000:密码相关概念定义及介绍(持续更新~~)
密码相关概念 1、密码学 1、密码学 密码学是研究密码与密码活动本质和规律,以及指导密码实践的科学,主要探索密码编码和密码分析的一般规律,它是一门结合数学、计算机科学、信息通信系统等多门学科为一体的综合性学科。 密码学的常见应用场景…...
大模型(LLMs)推理篇
大模型(LLMs)推理篇 1. 为什么大模型推理时显存涨的那么多还一直占着? 首先,序列太长了,有很多Q/K/V;其次,因为是逐个预测next token,每次要缓存K/V加速解码。 大模型在gpu和cpu上…...