当前位置: 首页 > news >正文

ECCV2022 | LGV | LGV:利用大几何邻域提升对抗样本的可迁移性

LGV: Boosting Adversarial Example Transferability from Large Geometric Vicinity

  • 摘要-Abstract
  • 引言-Introduction
  • 实验设置-Experimental Settings
  • LGV: 源于大几何邻域的迁移性-LGV: Transferability from Large Geometric Vicinity
  • 研究LGV特性:损失几何的重要性-Investigating LGV Properties: On the Importance of the Loss Geometry
    • 损失平坦性:代理-目标错位假设-Loss Flatness: the Surrogate-Target Misalignment Hypothesis
    • LGV 权重子空间几何的重要性-On the Importance of LGV Weight Subspace Geometry
  • 结论和未来工作-Conclusion And Future Work


论文链接

本文 “LGV: Boosting Adversarial Example Transferability from Large Geometric Vicinity” 提出了一种名为 LGV(Large Geometric Vicinity)的新技术,用于提升黑盒对抗攻击的可转移性,从代理模型损失几何的角度揭示了对抗样本可转移性的重要因素,为理解和改进对抗攻击可转移性开辟了新方向。


摘要-Abstract

We propose transferability from Large Geometric Vicinity (LGV), a new technique to increase the transferability of black-box adversarial attacks. LGV starts from a pretrained surrogate model and collects multiple weight sets from a few additional training epochs with a constant and high learning rate. LGV exploits two geometric properties that we relate to transferability. First, models that belong to a wider weight optimum are better surrogates. Second, we identify a subspace able to generate an effective surrogate ensemble among this wider optimum. Through extensive experiments, we show that LGV alone outperforms all (combinations of) four established test-time transformations by 1.8 to 59.9 percentage points. Our findings shed new light on the importance of the geometry of the weight space to explain the transferability of adversarial examples.

我们提出了来自大几何邻域(LGV)的可转移性,这是一种提高黑盒对抗攻击可转移性的新技术。LGV 从预训练的代理模型开始,并在几个额外的训练周期中以恒定的高学习率收集多个权重集。LGV 利用了与可迁移性相关的两个几何特性。首先,属于更宽权重最优解的模型是更好的代理模型。其次,我们确定了一个子空间,能够在这个更宽的最优解中生成有效的代理集成。 通过大量实验,我们表明仅 LGV 就比所有(组合)四种已建立的测试时变换高出 1.8 到 59.9 个百分点。我们的发现为权重空间的几何形状在解释对抗样本可转移性方面的重要性提供了新的见解。


引言-Introduction

这部分主要介绍了研究背景、问题现状以及研究内容与贡献,具体如下:

  1. 研究背景:深度神经网络(DNNs)在计算机视觉任务中表现出色,但易受对抗样本影响。在实际应用的黑箱设置中,攻击者难以获取目标模型的全部信息,通常在代理模型上执行对抗攻击,生成对抗样本并期望其能转移到目标模型。
  2. 问题现状:实现对抗样本的稳定转移颇具挑战,当前提升转移能力的方法多依赖优化过程中的多样性构建,但代理模型属性与转移能力之间的关系仍不明确。现有研究虽对DNN几何在自然泛化方面有深入探讨,但在利用几何提升对抗样本转移能力上成果较少,缺乏可行的见解来推动新方法的设计。
  3. 研究内容与贡献:提出LGV技术提升黑箱对抗攻击的转移能力。该技术从预训练的代理模型出发,通过高学习率的额外训练轮次收集多个权重样本。实验表明,LGV在转移率上较于其他技术高出3.1到59.9个百分点。研究还揭示了LGV采样权重的两个属性与转移能力提升相关,并强调了代理损失几何对解释对抗样本转移能力的重要性 ,为相关研究提供了新的思路。

实验设置-Experimental Settings

该部分主要介绍了评估基于转移的黑盒攻击时所采用的实验设置,涵盖模型选择、样本制作、对比方法、超参数选择、评估指标及相关代码模型获取途径等方面,具体如下:

  1. 模型选择:代理模型采用训练好的ResNet - 50模型;目标模型选用来自PyTorch的8个不同架构的训练模型,其中包含ResNet - 50,以此覆盖同架构和跨架构的实验场景。
  2. 样本制作:从2000张ImageNet测试图像的随机子集中生成对抗样本,这些图像能被所有8个目标模型正确分类。
  3. 对比方法:将LGV与四种测试时变换技术及其组合进行对比,所有对比方法均基于I - FGSM(迭代快速梯度符号法)。由于转移攻击的威胁模型不允许攻击者访问目标模型的预言机,因此未考虑基于查询的黑盒攻击。
  4. 超参数选择:通过在独立的已正确分类训练示例子集上进行交叉验证,来选择攻击的超参数。
  5. 评估指标:报告在 L ∞ L_{\infty} L 范数有界扰动下的攻击成功率,即无目标对抗样本的误分类率的平均值和标准差。每个实验运行3次,每次运行使用独立的示例集、不同的代理模型和不同的随机种子。

LGV: 源于大几何邻域的迁移性-LGV: Transferability from Large Geometric Vicinity

该部分主要介绍了LGV技术,包括技术的初步探索、算法步骤,以及与当前最先进技术的对比情况,具体如下:

  1. 初步探索:通过实验发现,在权重空间添加随机方向能提升转移能力,而在特征空间梯度上添加随机方向则无此效果。基于此,开发出LGV技术,其通过从训练好的DNN附近构建代理模型,证实了代理模型权重空间对提升转移能力的重要性。
  2. 算法步骤
    • 权重收集:从预训练模型出发,以高恒定学习率进行额外训练轮次,沿随机梯度下降(SGD)轨迹按固定间隔(每轮4次)收集权重。如在实验中的ResNet-50代理模型上,使用初始训练时一半的学习率运行SGD,使模型能逃离初始局部最小值的吸引域。
    • 迭代攻击:对收集到的模型进行迭代攻击。每次迭代时,随机无放回地选择一个收集到的模型,计算其梯度。若迭代次数大于收集到的模型数量,则循环使用这些模型。该步骤相比攻击单个模型,计算开销可忽略不计。
      在这里插入图片描述
      在这里插入图片描述
      图1:所提方法的示意图。
  3. 与当前最先进技术的对比:与MI(为攻击梯度添加动量)、Ghost Networks(GN,利用dropout或跳过连接侵蚀生成多样代理模型)、DI(对输入应用变换增加多样性)、Skip Gradient Method(SGM,更注重跳过连接的梯度)等技术对比,LGV单独使用时,攻击成功率比其他技术(及其组合)有显著提升,平均提高35.6个百分点。部分技术与LGV结合可进一步提升效果,但GN和SGM与LGV结合时存在兼容性问题。
    表1:在 L ∞ L_{\infty} L 攻击下,基线模型、最先进技术和LGV的成功率。单下划线表示在不与LGV组合的情况下最佳,双下划线表示总体最佳。灰色表示基于LGV的技术比普通LGV效果更差。“RD”代表权重空间中的随机方向。以百分比表示。
    在这里插入图片描述

研究LGV特性:损失几何的重要性-Investigating LGV Properties: On the Importance of the Loss Geometry

损失平坦性:代理-目标错位假设-Loss Flatness: the Surrogate-Target Misalignment Hypothesis

该部分围绕“损失平坦度:代理 - 目标失配假设”展开,旨在解释LGV作为良好代理模型的原因,通过理论分析和实验验证,揭示了LGV在权重空间和特征空间的平坦特性及其对提高对抗样本转移性的作用,具体内容如下:

  1. 理论基础:在机器学习中,尖锐最小值和平坦最小值是重要概念。尖锐最小值指目标函数在邻域内变化大,平坦最小值则变化小。已有研究表明,权重空间中解的宽度与(自然)泛化相关,当训练损失和测试损失在权重空间发生偏移时,宽最优解有助于减小两者差异。类似地,作者推测代理模型和目标模型在特征空间也存在失配,在此假设下,代理损失更宽最大值处的对抗样本比尖锐处的转移效果更好。但并非所有类型的损失平坦度都能增加转移性,因为完全消失的梯度会使基于梯度的攻击失效。
    在这里插入图片描述
    图2:平坦和尖锐对抗样本的概念示意图。改编自[14]。

  2. 实验验证

    • 权重空间的平坦性:为验证LGV权重处于更平坦区域,从两方面进行实验。一是计算Hessian-based尖锐度指标,包括Hessian矩阵的最大特征值和迹,结果表明初始DNN比LGV和LGV-SWA权重更尖锐;二是在单位球上采样随机方向向量,研究不同模型沿该方向的损失变化。发现LGV-SWA的自然损失在权重空间更宽,添加随机向量后其损失增加幅度远小于初始模型,且平坦度增加伴随着转移性提升。
      表2:权重空间中的尖锐度指标,即Hessian矩阵的最大特征值和秩,这些指标是在三种类型的代理模型和10000个训练样本上计算得到的。
      在这里插入图片描述
      在这里插入图片描述
      图3:基于具有自然损失的代理模型构建的 L 2 L_2 L2 攻击(上图),在目标模型上进行评估(下图),评估依据是在权重空间中,沿着从LGV-SWA解(橙色)、随机LGV权重(紫色)和初始DNN(绿色)出发的10个随机方向的2-范数距离。
    • 特征空间的平坦性:研究LGV在权重空间的平坦性对特征空间对抗样本的影响。构建包含原始样本、LGV对抗样本和初始DNN对抗样本的平面,并建立正交基。以2-范数攻击为例,其将对抗扰动限制在以原始样本为中心的 L 2 L_2 L2 球内,该球与平面的交集为圆盘。通过比较LGV和初始DNN在该平面坐标系中的损失,发现LGV的损失表面更平滑,其对抗样本位于更宽区域,而初始DNN损失的最大值更尖锐,易导致对抗样本过拟合。同时,LGV损失与ResNet-50目标模型的损失对齐更好,在其他目标模型和不同代理模型的对抗样本平面上也有类似现象,进一步支持了代理 - 目标失配假设。
      在这里插入图片描述
      图4:在包含原始样本(圆形)、针对LGV的对抗样本(方形)和针对初始DNN的对抗样本(三角形)的平面中,代理模型(左)和目标模型(右)在( ( u ′ , v ′ ) (u', v') (u,v))坐标系中的损失情况。颜色采用对数刻度,等高线采用自然刻度。白色圆圈表示2-范数球与该平面的交集。
  3. 结论:LGV权重所在的损失区域比初始DNN权重更平坦,权重空间的平坦性与特征空间的平坦性相关,LGV对抗样本相比基于初始DNN生成的尖锐对抗样本更宽。这些结论支持了代理 - 目标失配假设,即当代理和目标损失存在偏移时,宽最优解比尖锐最优解更具鲁棒性,更有利于对抗样本的转移。

LGV 权重子空间几何的重要性-On the Importance of LGV Weight Subspace Geometry

该部分主要研究LGV权重子空间几何对提升对抗样本可转移性的重要作用,通过构建不同代理模型进行实验,从子空间对可转移性的作用、投影矩阵分解以及子空间的通用性三个方面展开分析,具体内容如下:

  1. 子空间对可转移性的作用:构建新代理模型“LGV - SWA + RD”,在LGV - SWA周围全权重空间采样随机方向。实验结果显示,虽然在全权重空间随机偏差能提升LGV - SWA的可转移性,但LGV代理模型性能更优,表明LGV形成的子空间具有与可转移性相关的特定几何属性,使其整体性能优于随机方向构建的模型。通过评估从该子空间采样构建的代理模型的可转移性,进一步证明子空间与可转移性紧密相连。
  2. 投影矩阵分解分析:利用主成分分析(PCA)对LGV权重偏差矩阵进行分解,将其分解为正交方向,得到新的正交基。通过控制投影到主成分的数量,构建不同维度的LGV代理模型。研究发现,在同架构(如ResNet - 50目标)和部分跨架构情况下,权重子空间方向的重要性(以解释权重方差的比例衡量)与可转移性呈正相关,即沿方差更高的方向采样对提升可转移性更有帮助。在某些跨架构案例中,虽未呈现严格线性关系,但相关性仍为正,各方向对可转移性的贡献接近相等。
    在这里插入图片描述
    图5:投影到越来越多维度上的LGV代理模型的成功率,以及权重空间中相应的解释方差比。假设的与方差成比例的平均情况(实线)和所有子空间维度贡献相等的情况(虚线)。坐标轴刻度未共享。
  3. 子空间的通用性:将LGV应用于另一个独立训练的DNN,构建“LGV - SWA + (LGV’ - LGV - SWA’)”代理模型。实验表明,将LGV子空间转移到另一个平坦解上,比在该解上随机采样方向得到的代理模型性能更好,说明子空间几何具有与可转移性相关的通用属性。然而,与原始LGV代理模型相比,转移后的代理模型成功率有所下降,表明子空间在原始解上应用时最优。此外,将LGV偏差应用于常规训练的DNN时,通过适当缩放(如缩放因子为0.5),可使可转移性相比随机方向平均提升10.0个百分点,进一步证明LGV子空间对不同性质的解都有益处。
  4. 结论:LGV权重偏差形成的子空间对提升可转移性至关重要,其几何结构与可转移性紧密且通用相关。该子空间使LGV能利用损失平坦区域的优势,克服代理模型和目标模型损失函数之间的潜在失配,提高对抗样本从代理模型转移到目标模型的成功率。

结论和未来工作-Conclusion And Future Work

这部分总结了LGV技术的研究成果,并对未来研究方向提出了展望:

  1. 研究结论:研究发现,在攻击迭代时从权重空间采样随机方向可提升对抗样本的可转移性,而从特征空间采样则无效。基于此提出的LGV技术,通过从预训练的常规DNN出发,以高恒定学习率沿SGD轨迹收集权重构建代理模型,在实验中表现优异,单独使用时击败了四种现有技术的所有组合。深入分析LGV可知,其成功得益于两方面:一是权重空间的平坦度,能产生更鲁棒的对抗样本,抵抗代理 - 目标失配;二是LGV权重所张成的密集子空间,其几何结构与可转移性紧密相连。
  2. 未来展望:基于已有研究中关于自然泛化的见解,未来研究可从权重空间体积的角度出发,研究其如何导致相似的预测函数,进而探索对对抗样本可转移性的影响,为该领域的进一步发展提供新的研究方向。

相关文章:

ECCV2022 | LGV | LGV:利用大几何邻域提升对抗样本的可迁移性

LGV: Boosting Adversarial Example Transferability from Large Geometric Vicinity 摘要-Abstract引言-Introduction实验设置-Experimental SettingsLGV: 源于大几何邻域的迁移性-LGV: Transferability from Large Geometric Vicinity研究LGV特性:损失几何的重要性…...

Git 查看修改记录 二

Git 查看修改记录 二 续接 Git 查看一个文件的修改记录 一 一、修改 A.txt 修改 A.txt number6执行命令 git add . git commit -a -m "修改 number6" # git commit -a -m "修改 number6" 执行 输出如下 # $ git commit -a -m "修改 number6"…...

麒麟操作系统-rabbitmq二进制安装

1、通过官网下载https://www.rabbitmq.com/ 官网网址:https://www.rabbitmq.com 首先下载erlang-23.3.4.11-1.el7.x86_64.rpm,其次下载rabbitmq-server-3.10.0-1.el7.noarch.rpm 2、安装erlang yum install -y erlang-23.3.4.11-1.el7.x86_64.rpm 3、…...

说说平衡树的基本实现,与红黑树的区别是什么

说说平衡树的基本实现,与红黑树的区别是什么 平衡树是一种能够在插入、删除和查找操作中保持平衡的二叉搜索树。其目的是确保树的高度在一定范围内,防止出现极端情况(如链表化),以便提高操作效率。常见的平衡树有 AVL …...

uniapp实现首行首列冻结效果

uniapp首行首列冻结 <template><view class"height800 flex-column absolute bgc-withe"><!-- 第一行 --><view class"flex diy-header"><view class"box">时间</view><scroll-view id"1" ena…...

MySQL单表存多大的数据量比较合适

前言 经常使用MySQL数据库的小伙伴都知道&#xff0c;当单表数据量达到一定的规模以后&#xff0c;查询性能就会显著降低。因此&#xff0c;当单表数据量过大时&#xff0c;我们往往要考虑进行分库分表。那么如何计算单表存储多大的数据量合适&#xff1f;当单表数据达到多大的…...

uniapp 使用 鸿蒙开源字体

uniapp vue3 使用 鸿蒙开源字体 我的需求是全局使用鸿蒙字体。 所以&#xff1a; 0. 首先下载鸿蒙字体&#xff1a; 鸿蒙资源 下载后解压&#xff0c;发现里面有几个文件夹&#xff1a; 字体名称说明Sans默认的鸿蒙字体&#xff0c;支持基本的多语言字符&#xff08;包括字…...

SiliconCloud 支持deepseek,送2000w token

SiliconCloud SiliconCloud 邀请奖励持续进行&#xff0c;2000 万 Tokens 送不停&#xff01; 邀请好友赚 2000 万 Tokens&#xff1a;每成功邀请一位新用户通过手机号码注册&#xff0c;您将获得 2000 万 Tokens&#xff1b;注册即送 2000 万 Tokens&#xff1a;受邀好友作为…...

从零开始设计一个完整的网站:HTML、CSS、PHP、MySQL 和 JavaScript 实战教程

前言 本文将从实战角度出发&#xff0c;带你一步步设计一个完整的网站。我们将从 静态网页 开始&#xff0c;然后加入 动态功能&#xff08;使用 PHP&#xff09;&#xff0c;连接 数据库&#xff0c;最后加入 JavaScript 实现交互功能。通过这个教程&#xff0c;你将掌握一个…...

【Python深入浅出㊸】解锁Python3中的TensorFlow:开启深度学习之旅

目录 一、TensorFlow 简介1.1 定义与背景1.2 特点 二、Python 3 与 TensorFlow 的关系2.1 版本对应2.2 为何选择 Python 3 三、安装 TensorFlow3.1 安装步骤3.2 验证安装 四、TensorFlow 基本概念与使用方法4.1 计算图&#xff08;Graph&#xff09;4.2 会话&#xff08;Sessio…...

CMakeLists使用

1.预定义宏 宏 功能 PROJECT_SOURCE_DIR 使用cmake命令后紧跟的目录&#xff0c;一般是工程的根目录 PROJECT_BINARY_DIR 执行cmake命令的目录 CMAKE_CURRENT_SOURCE_DIR 当前处理的CMakeLists.txt所在的路径…...

P7201 [COCI 2019/2020 #1] Džumbus

题目背景 Marin 是一个心地善良的人,因此他将为他的 N 个朋友组织 Q 次宴会。宴会上唯一的饮料被称为 džumbus。 每位朋友对这种饮料的需求量是已知的。在这些朋友中,有 M 组朋友。每一组中的两位在同时满足他们各自的需求量后,将开始互相核对自己对往届 COCI 题目的答案…...

网络性能测试工具ipref

文章目录 一、ipref的介绍二、iperf安装配置三、iperf使用四、iperf常见故障处理 一、ipref的介绍 ipref是一种常用的网络性能测试工具&#xff0c;用于评估网络带宽、延迟和吞吐量等性能指标。它通过在客户端和服务器之间发送数据流来测量网络的性能&#xff0c;可以帮助管理…...

C# Dictionary的实现原理

在 C# 中&#xff0c;Dictionary<TKey, TValue> 是一个基于哈希表&#xff08;Hash Table&#xff09;实现的键值对集合。它提供了高效的插入、删除和查找操作&#xff0c;平均时间复杂度接近 O(1)。下面是 Dictionary 的核心实现原理&#xff1a; 1. Dictionary 的核心数…...

在项目中操作 MySQL

在现代Web开发中&#xff0c;Node.js因其非阻塞I/O模型和高效的性能成为了构建后端服务的热门选择之一。与此同时&#xff0c;MySQL作为最流行的关系型数据库管理系统之一&#xff0c;凭借其稳定性、可靠性和易用性&#xff0c;在数据存储方面扮演着重要角色。本文将详细介绍如…...

第6章 6.4 ASP.NET Core Web API各种技术及选择

6.4.1 控制器父类用哪个 6.2小节和6.3小节所演示的ASP.NET Core Web API 的控制器类都继承自ControllerBase&#xff0c;而6.1中MVC的控制器继承自Controller&#xff0c;Controller又继承自ControllerBase。 所以&#xff0c;一般情况下&#xff0c;编写的WebAPI控制器类继承…...

DeepSeek本地化部署【window下安装】【linux下安装】

一、window 本地安装指导 1.1、下载window安装包 https://ollama.com/download/OllamaSetup.exe 1.2、点击下载好的安装包进行安装 检测安装是否成功&#xff1a; C:\Users\admin>ollama -v ollama version is 0.5.7有上面的输出&#xff0c;则证明已经安装成功。 配置…...

字玩FontPlayer开发笔记14 Vue3实现多边形工具

目录 字玩FontPlayer开发笔记14 Vue3实现多边形工具笔记整体流程临时变量多边形组件数据结构初始化多边形工具mousedown事件mousemove事件监听mouseup事件渲染控件将多边形转换为平滑的钢笔路径 字玩FontPlayer开发笔记14 Vue3实现多边形工具 字玩FontPlayer是笔者开源的一款字…...

kkFileView二开之pdf转图片接口

kkFileView二开之Pdf转图片接口 1 kkFileView源码下载及编译2 Pdf转图片接口2.1 背景2.2 分析2.2 接口开发2.2.1 编写Pdf转图片方法2.2.2 编写转换接口 2.3 接口测试2.3.1 Pdf文件准备2.3.2 pdf2Image 3 部署 1 kkFileView源码下载及编译 前文 【kkFileView二开之源码编译及部…...

达梦tpcc压测

造数 在这个日志输出中&#xff0c;主要执行了一系列数据库操作&#xff0c;涵盖了数据库信息检查、表的创建与数据加载、索引的添加、数据验证等步骤。具体分析如下&#xff1a; 数据库信息检查&#xff1a; 查询了数据库的版本、实例名称、日志文件大小、字符集等信息。 删…...

计算机毕业设计PySpark+hive招聘推荐系统 职位用户画像推荐系统 招聘数据分析 招聘爬虫 数据仓库 Django Vue.js Hadoop

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…...

DeepSeek正重构人形机器人和具身大模型赛道!

中国人工智能公司DeepSeek&#xff08;深度求索&#xff09;以“低成本、高效率、强开放”的研发范式横空出世&#xff0c;火遍并震撼全球科技圈&#xff1b;DeepSeek展现出来的核心竞争力&#xff0c;除了低成本及推理能力&#xff0c;更重要的是开源模型能力追赶上了最新的闭…...

第1章 信息化发展(一)

1.1信息与信息化 1.1.1信息基础 1.信息的定义 信息是物质、能量及其属性的标示的集合&#xff0c;是确定性的增加。它以物质介质为载体&#xff0c;传递和反映世界各种事物存在方式、运动状态等的表征。信息不是物质也不是能量&#xff0c;它以一种普遍形式&#xff0c;表达…...

面试经典150题——字典树

文章目录 1、实现 Trie (前缀树)1.1 题目链接1.2 题目描述1.3 解题代码1.4 解题思路 2、添加与搜索单词 - 数据结构设计2.1 题目链接2.2 题目描述2.3 解题代码2.4 解题思路 3、单词搜索 II3.1 题目链接3.2 题目描述3.3 解题代码3.4 解题思路 对于字典树而言&#xff0c;之前做过…...

【前端 DevOps】GitHub Actions 与 GitLab CI 实战:实现前端项目的自动化测试与部署

网罗开发 &#xff08;小红书、快手、视频号同名&#xff09; 大家好&#xff0c;我是 展菲&#xff0c;目前在上市企业从事人工智能项目研发管理工作&#xff0c;平时热衷于分享各种编程领域的软硬技能知识以及前沿技术&#xff0c;包括iOS、前端、Harmony OS、Java、Python等…...

SQLMesh系列教程-3:SQLMesh模型属性详解

SQLMesh 的 MODEL 提供了丰富的属性&#xff0c;用于定义模型的行为、存储、调度、依赖关系等。通过合理配置这些属性&#xff0c;可以构建高效、可维护的数据管道。在 SQLMesh 中&#xff0c;MODEL 是定义数据模型的核心结构&#xff0c;初学SQLMesh&#xff0c;定义模型看到属…...

【Maven】多module项目优雅的实现pom依赖管理

【Maven】多module项目优雅的实现pom依赖管理 【一】方案设计原则【二】项目结构示例【三】实现思路【1】可能的问题点&#xff1a;【2】解决方案的思路&#xff1a;【3】需要注意的地方&#xff1a;【4】可能的错误&#xff1a; 【四】实现案例【1】父POM设计&#xff08;pare…...

【数字】异步FIFO面试的几个小问题与跨时钟域时序约束

入门数字设计的时候&#xff0c;跨时钟域的数据处理是绕不开的课题&#xff0c;特别是多比特数据跨时钟域时&#xff0c;都会采用异步FIFO的方法。 异步FIFO中涉及较多的考点这里记录几个以供大家参考。 1. 异步FIFO的空满判断分别在哪个域&#xff1f; 根据异步FIFO的结构&…...

云原生时代的开发利器

云原生时代的开发工具集之中&#xff0c;至少应有这样一种利器&#xff1a;基于微服务架构的低代码开发平台&#xff0c;同时与业界标准的云原生技术支撑设施能够完全协同和融合。低代码开发平台的构建不仅仅是采用微服务开发框架&#xff0c;更加重要的是符合当前主流的中台和…...

利用IDEA将Java.class文件反编译为Java文件:原理、实践与深度解析

文章目录 引言&#xff1a;当.class文件遇到源代码缺失第一章&#xff1a;反编译技术基础认知1.1 Java编译执行原理1.2 反编译的本质1.3 法律与道德边界 第二章&#xff1a;IDEA内置反编译工具详解2.1 环境准备2.2 三步完成基础反编译2.3 高级反编译技巧2.3.1 调试模式反编译2.…...

C++ Primer 参数传递

欢迎阅读我的 【CPrimer】专栏 专栏简介&#xff1a;本专栏主要面向C初学者&#xff0c;解释C的一些基本概念和基础语言特性&#xff0c;涉及C标准库的用法&#xff0c;面向对象特性&#xff0c;泛型特性高级用法。通过使用标准库中定义的抽象设施&#xff0c;使你更加适应高级…...

2.7 静态方法/构造函数Mock

静态方法/构造函数Mock 在单元测试中&#xff0c;静态方法和构造函数的Mock是相对复杂的需求&#xff0c;因为Mockito的核心设计基于对象实例的模拟。然而&#xff0c;通过扩展工具或特定技巧&#xff0c;可以实现对这些场景的处理。本章详解两种主流方案&#xff1a;PowerMoc…...

注册Gmail如何跳过手机验证环节?

很多小伙伴在注册Gmail的时候都会遇到一个难题&#xff1a;手机号码验证&#xff0c;有可能包括了“手机号无法验证” “国内手机号验证失败” “收不到验证码”等等问题&#xff0c;但 根据真实案例&#xff0c;还有部分人则是“幸运地”没有手机号验证环节&#xff0c;那么今…...

【算法专场】哈希表

目录 前言 哈希表 1. 两数之和 - 力扣&#xff08;LeetCode&#xff09; 算法分析 算法代码 面试题 01.02. 判定是否互为字符重排 ​编辑算法分析 算法代码 217. 存在重复元素 算法分析 算法代码 219. 存在重复元素 II 算法分析 算法代码 解法二 算法代码 算法…...

5、pod 详解 (kubernetes)

pod 详解 &#xff08;kubernetes&#xff09; Pod 的基础概念pause 容器Pod 的分类与创建自主式 Pod控制器管理的 Pod静态 Pod Pod容器的分类基础容器&#xff08;infrastructure container&#xff09;初始化容器&#xff08;initcontainers&#xff09;应用容器&#xff08;…...

二叉树详解:Java实现与应用

在计算机科学中&#xff0c;数据结构是构建高效算法的基石&#xff0c;而二叉树作为一种基础且重要的树形结构&#xff0c;在诸多领域都有着广泛应用&#xff0c;如数据库索引、文件系统、编译器设计等。本文将从基础概念入手&#xff0c;带你逐步深入理解二叉树&#xff0c;并…...

GPT和BERT

笔记来源&#xff1a; Transformer、GPT、BERT&#xff0c;预训练语言模型的前世今生&#xff08;目录&#xff09; - B站-水论文的程序猿 - 博客园 ShusenWang的个人空间-ShusenWang个人主页-哔哩哔哩视频&#xff08;RNN模型与NLP应用&#xff09; 一、GPT 1.1 GPT 模型的…...

【工业安全】-CVE-2024-30891- Tenda AC18路由器 命令注入漏洞

1.漏洞描述 2.漏洞复现 2.1 qemu-user 模拟&#xff1a; 2.2 qemu-system模拟&#xff1a; 3.漏洞分析 4.poc代码&#xff1a; 1.漏洞描述 漏洞编号&#xff1a;CVE-2024-30891 漏洞名称&#xff1a;Tenda AC18 命令注入 威胁等级&#xff1a;高危 漏洞详情&#xff1a;Ten…...

如何从0开始将vscode源码编译、运行、打包桌面APP

** 网上关于此的内容很少&#xff0c;今天第二次的完整运行了&#xff0c;按照下文的顺序走不会出什么问题。最重要的就是环境的安装&#xff0c;否则极其容易报错&#xff0c;请参考我的依赖版本以及文末附上的vscode官方指南 ** 第一步&#xff1a;克隆 VSCode 源码 首先…...

登录弹窗效果

1&#xff0c;要求 点击登录按钮&#xff0c;弹出登录窗口 提示1&#xff1a;登录窗口 display:none 隐藏状态&#xff1b; 提示2&#xff1a;登录按钮点击后&#xff0c;触发事件&#xff0c;修改 display:block 显示状态 提示3&#xff1a;登录窗口中点击关闭按钮&#xff0…...

wps或office的word接入豆包API(VBA版本)

直接上代码&#xff0c;由于时间匆忙&#xff0c;以后写个详细的教程 #If VBA7 ThenPrivate Declare PtrSafe Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As…...

深入浅出 Python Logging:从基础到进阶日志管理

在 Python 开发过程中&#xff0c;日志&#xff08;Logging&#xff09;是不可或缺的调试和监控工具。合理的日志管理不仅能帮助开发者快速定位问题&#xff0c;还能提供丰富的数据支持&#xff0c;让应用更具可观测性。本文将带你全面了解 Python logging 模块&#xff0c;涵盖…...

系统巡检脚本分享:守护服务器的“健康卫士”

在日常的运维工作中&#xff0c;系统巡检是一项至关重要的任务。它可以帮助我们及时发现服务器的潜在问题&#xff0c;确保系统的稳定运行。今天&#xff0c;我想和大家分享一个实用的系统巡检脚本&#xff0c;它能够帮助我们快速、全面地检查服务器的健康状况。 一、为什么需…...

【Elasticsearch】运行时字段(Runtime Fields)索引时定义运行时字段

在 Elasticsearch 中&#xff0c;运行时字段&#xff08;Runtime Fields&#xff09;是一种在查询时动态计算的字段&#xff0c;而不是在索引时预先存储的字段。运行时字段为数据处理提供了极大的灵活性&#xff0c;尤其是在处理结构不固定的日志数据或需要动态生成字段值的场景…...

C++从入门到实战(四)C++引用与inline,nullptr

C从入门到实战&#xff08;四&#xff09;C引用与inline&#xff0c;nullptr 前言一、C 引用&#xff08;一&#xff09;什么是引用&#xff08;二&#xff09;引用的特点&#xff08;三&#xff09;引用作为函数参数&#xff08;四&#xff09;引用作为函数返回值&#xff08;…...

DeepSeek 助力 Vue 开发:打造丝滑的卡片(Card)

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 Deep…...

Azure Synapse Dedicated SQL Pool统计指定表中各字段的空值、空字符串或零值比例

-- 创建临时表存储结果 CREATE TABLE #Results (DatabaseName NVARCHAR(128),TableName NVARCHAR(128),ColumnName NVARCHAR(128),DataType NVARCHAR(128),NullOrEmptyCount INT,TotalRows INT,Percentage DECIMAL(10,2) );DECLARE db_name SYSNAME DB_NAME(); -- 获取当前数…...

【深度学习】计算机视觉(CV)-目标检测-SSD(Single Shot MultiBox Detector)—— 单次检测多框检测器

&#x1f539; SSD&#xff08;Single Shot MultiBox Detector&#xff09;—— 单次检测多框检测器 1️⃣ 什么是 SSD&#xff1f; SSD (Single Shot MultiBox Detector) 是一种用于 目标检测&#xff08;Object Detection&#xff09; 的 深度学习模型&#xff0c;由 Wei L…...

力扣100. 相同的树(利用分解思想解决)

Problem: 100. 相同的树 文章目录 题目描述思路Code 题目描述 思路 题目要求判断两个二叉树是否完全相同&#xff0c;而此要求可以利用问题分解的思想解决&#xff0c;即判断当前节点的左右子树是否完全相同&#xff0c;而在二叉树问题分解的一般题目中均会带有返回值&#xff…...

在SpringBoot服务器端采购上,如何选择操作系统、Cpu、内存和带宽、流量套餐

在Spring Boot服务器端采购时&#xff0c;选择操作系统、CPU、内存、带宽和流量套餐需根据应用需求、预算和性能要求综合考虑。以下是具体建议&#xff1a; 1. 操作系统 Linux发行版&#xff08;如Ubuntu、CentOS&#xff09;&#xff1a;适合大多数Spring Boot应用&#xff…...