R-Adapter:零样本模型微调新突破,提升鲁棒性与泛化能力 | ECCV 2024

news2024/11/15 11:37:22

大规模图像-文本预训练模型实现了零样本分类,并在不同数据分布下提供了一致的准确性。然而,这些模型在下游任务中通常需要微调优化,这会降低对于超出分布范围的数据的泛化能力,并需要大量的计算资源。论文提出新颖的Robust AdapterR-Adapter),可以在微调零样本模型用于下游任务的同时解决这两个问题。该方法将轻量级模块集成到预训练模型中,并采用新颖的自我集成技术以提高超出分布范围的鲁棒性,并大幅减少存储开销。此外,论文提出了针对视觉-语言下游任务设计的MPM-NCE损失,确保多个图像-文本对的精确对齐和具有区分性的特征学习。

来源:晓飞的算法工程笔记 公众号

论文: Efficient and Versatile Robust Fine-Tuning of Zero-shot Models

  • 论文地址:https://www.arxiv.org/abs/2408.05749
  • 论文代码:http://cvlab.postech.ac.kr/research/R-Adapter

Introduction


  大规模联合图像和文本数据预训练模型的出现在计算机视觉领域引起了范式转变。通过对大量图像-文本对的嵌入进行对齐,这些模型实现了零样本推断,并展现出在不同数据分布下广泛泛化的显著能力。尽管它们在零样本情境下表现出色,但它们无法与监督学习模型相媲美,需要进行微调以发挥其全部能力。然而,传统的全面微调会产生两个主要挑战:1)全面微调损害了模型对于超出分布范围(OOD)数据的泛化能力,而这对于数据变异性不可预测的实际应用至关重要。2)它需要大量的计算资源、内存和存储,而随着大规模预训练模型的不断增大,这是不切实际的。

  最近,针对这些挑战提出了几种微调方法。鲁棒微调的目标是在微调零样本模型的同时保持对OOD的鲁棒性,而参数高效微调(PEFT)仅更新一小部分参数,同时保持预训练参数的冻结状态。然而,每种方法只解决其中一个挑战,同时在另一个挑战上仍然存在不足。如图1所示,现有的鲁棒微调方法仍然需要微调整个模型,导致训练代价高昂。此外,它们仅针对分类任务,因此通常仅训练图像编码器,从模型中排除了零样本推断能力。另一方面,与鲁棒微调相比,PEFT在分布偏移下的性能显著滞后。它们的关键缺点凸显了需要新的微调方法,同时解决鲁棒微调和PEFT分别应对的两个挑战。

  本文提出了一种名为鲁棒适配器(R-Adapter)的新型微调方法,旨在提高PEFT的鲁棒性,并增强鲁棒微调的效率。在适配器微调方法的基础上向预训练模型添加额外的轻量级模块,R-Adapter引入了新颖的自我集成策略,以增强OOD的鲁棒性。

  受到在权重空间中平均多个模型时观察到的鲁棒性增益的启发,通过一种独特的方式在单个模型内实现这种策略。这种方法在任务特定性能和针对分布偏移的鲁棒性之间取得了良好的平衡,同时显著降低了存储成本。具体而言,R-Adapter通过三种自我集成技术实现这一目标。它随机丢弃适配器模块,从而动态生成并集成不同子网络,以各种配置组合适配器和预训练层。此外,累积适配器权重以形成一个时间集成,捕捉整个学习过程中产生的所有模型。此外,通过重新缩放适配器的权重,并通过重新参数化将其整合到预训练层中,论文实现了在没有两个单独模型的情况下,在预训练和微调模型的权重之间实现无缝的线性插值。

  此外,论文提出了一种名为Multi-Positive Margin NCEMPM-NCE)损失函数,专为在视觉-语言下游任务上进行有效微调而设计。这些任务通常涉及复杂的关系,其中多个图像可以对应于相同的文本,反之亦然。与传统的对比损失(例如InfoNCE)不同,后者接受单一正样本对,并因此经常导致这些关系中的语义不匹配,MPM-NCE考虑了多个正样本对,从而更精确地对齐跨各种图像和文本对。此外,MPM-NCE引入了一个角度边距以惩罚负样本对,使模型能够学习对下游任务至关重要的高度区分的特征。因此,所提出的损失函数显著改善了任务特定性能,在IDOOD环境下都带来了益处。

  论文的方法在微调后实现了零样本推理,在图像分类任务之外扩展了其适用性范围,适用于广泛的应用领域。为了展示其多功能性,论文提出了一个新的用于鲁棒微调的评估基准,包括五个任务:三种情景下的图像分类任务、跨模态检索和开放词汇分割。大量实验证明,与现有的鲁棒微调和PEFT方法相比,论文的方法在分布转移条件下表现出卓越性能,同时使用的参数更少。

  本文的主要贡献有四点:

  1. 提出了一个高效且多功能的鲁棒微调框架,融合了PEFT和鲁棒微调的优势,这是第一个兼具两者优势的方法。

  2. 提出了R-Adapter,采用自集成技术,借助单个带有适配器的模型实现权重空间集成。能够在减少存储成本的同时增强鲁棒性,因为不需要多个模型。

  3. 开发了适用于微调的MPM-NCE损失,利用多个正样本对和引入角度间隔,确保了多个图像-文本对的精确对齐和具有区分性的特征学习。

  4. 首次将鲁棒微调的基准拓展到图像分类之外的任务,包括跨模态检索和开放词汇分割,从而允许评估其广泛适用性。论文的方法在各种任务中取得了最先进的性能,仅微调了13%CLIP编码器参数。

Proposed Method


Preliminary

  • CLIP Encoders

CLIP由两个编码器组成,分别用于从图像和文本中提取特征。每个编码器由一系列Transformer层组成,每个层包括多头注意力(MHA)、层归一化(LN)和前馈神经网络(FFN)。具体而言,第 l l lTransformer层的公式如下:

KaTeX parse error: Undefined control sequence: \label at position 154: …) + \bar{X_l}. \̲l̲a̲b̲e̲l̲{eq:Transformer…

MHA包括对查询、键和值进行 k k k 头自注意力操作,通过对输入进行独立的线性投影来实现,其公式为:

KaTeX parse error: Undefined control sequence: \label at position 213: …)(XW_{V}^{i}), \̲l̲a̲b̲e̲l̲{eq:MHA} \end{a…

  其中 [ ⋅ , ⋅ ] [\cdot,\cdot] [,] 表示拼接, d h d_h dh 设为 d / k d/k d/k W Q i ∈ R d × d h W_{Q}^{i}\in\mathbb{R}^{d\times d_h} WQiRd×dh W K i ∈ R d × d h W_{K}^{i}\in\mathbb{R}^{d\times d_h} WKiRd×dh W V i ∈ R d × d h W_{V}^{i}\in\mathbb{R}^{d\times d_h} WViRd×dh W O ∈ R d × d W_{O}\in\mathbb{R}^{d\times d} WORd×d 是线性投影矩阵。FFN由两个线性层和一个非线性层组成:

KaTeX parse error: Undefined control sequence: \label at position 64: …b_1)W_2 + b_2, \̲l̲a̲b̲e̲l̲{eq:FFN} \end{e…

  其中 W 1 ∈ R d × 4 d W_1\in\mathbb{R}^{d\times4d} W1Rd×4d , W 2 ∈ R 4 d × d W_2\in\mathbb{R}^{4d\times d} W2R4d×d , b 1 ∈ R 4 d b_1 \in \mathbb{R}^{4d} b1R4d , 和 b 2 ∈ R d b_2 \in \mathbb{R}^d b2Rd 分别是线性投影的权重和偏置; σ ( ⋅ ) \sigma(\cdot) σ() 表示GELU函数。

  • Contrastive Learning

CLIP编码器被训练用于预测哪些文本描述与给定的一组图像匹配,反之亦然。这通过使用InfoNCE损失来进行对比学习来实现,该损失迫使图像嵌入和其对应的文本嵌入彼此靠近,并远离批次中的其他文本嵌入。设 f ( ⋅ ) f(\cdot) f() g ( ⋅ ) g(\cdot) g() 分别是图像和文本的CLIP编码器。给定一个批次包含 B B B 个图像-文本对 B = { ( I 1 , T 1 ) , . . . , ( I B , T B ) } \mathcal{B} =\big\{(I_1,T_1), ..., (I_B,T_B)\big\} B={(I1,T1),...,(IB,TB)} ,损失函数定义为:

KaTeX parse error: Undefined control sequence: \label at position 237: …/\tau}}\Bigg), \̲l̲a̲b̲e̲l̲{eq:InfoNCE_Los…

  其中 f i = f ( I i ) ∣ ∣ f ( I i ) ∣ ∣ 2 f_i = \frac{f(I_i)}{||f(I_i)||_2} fi=∣∣f(Ii)2f(Ii) , g i = g ( T i ) ∣ ∣ g ( T i ) ∣ ∣ 2 g_i = \frac{g(T_i)}{||g(T_i)||_2} gi=∣∣g(Ti)2g(Ti) τ \tau τ 表示一个可学习的温度参数。

Problem Setup

  论文的目标是在保留其固有的离群分布泛化能力的同时,高效地对视觉-语言预训练模型进行各种下游任务的微调。虽然大多数现有的鲁棒微调方法局限于分类任务,但论文将范围扩大到为各种下游任务,如图像分类、跨模态检索和开放词汇分割等,提供鲁棒微调模型。

  给定一个图像-文本预训练模型,目标是使用一个面向目标下游任务的内分布(ID)训练数据集 D I = { ( I i , T i ) } i = 1 n \mathcal{D}_{\mathcal{I}}=\{(I_i, T_i)\}_{i=1}^{n} DI={(Ii,Ti)}i=1n 对其进行适应,其中 I I I 表示一个图像, T T T 是对应于该图像的文本描述。同时,旨在提高模型在一个离群分布(OOD)测试数据集 D O = { ( I j , T j ) } j = 1 m \mathcal{D}_{\mathcal{O}}=\{(I_j, T_j)\}_{j=1}^{m} DO={(Ij,Tj)}j=1m 上的性能。内分布和离群分布数据集 D I \mathcal{D}_{\mathcal{I}} DI D O \mathcal{D}_{\mathcal{O}} DO 分别从不同概率分布 p I ( I , T ) p_{\mathcal{I}}(I,T) pI(I,T) p O ( I , T ) p_{\mathcal{O}}(I,T) pO(I,T) 中采样,当 p I ( I , T ) ≠ p O ( I , T ) p_{\mathcal{I}}(I,T)\neq p_{\mathcal{O}}(I,T) pI(I,T)=pO(I,T) 时即为表现出分布转移。在分类任务中, T T T 表示目标类的文本描述,通过从一组预定义模板中进行采样构建(例如,“一张{class}的照片”)。对于其他视觉-语言任务, T T T 可能是与图像 I I I 相关联的标题之一。

Robust Adapter (R-Adapter)

  为了实现高效且鲁棒的微调,论文引入了基于PEFT框架的R-AdapterPEFT框架在微调少量附加的可学习参数的同时冻结预训练模型,但在训练中对该框架的朴素应用可能会导致对内分布数据的显著偏向(参见表2)。受到集成增强在各种分布下的泛化能力的启发,R-Adapter设计了三种新颖的自集成策略,以实现鲁棒微调而不在训练和推理期间增加计算负载。

  • Design of R-Adapter

R-Adapter建立在适配器微调框架之上,在该框架中向预训练模型添加了轻量级模块。具体而言,R-Adapter中的适配器模块采用了Houlsby适配器的简化版本,去除了非线性层和偏置。该模块被构建为一个残差块,由以下权重矩阵组成:

KaTeX parse error: Undefined control sequence: \label at position 49: …trm{adp}} + X, \̲l̲a̲b̲e̲l̲{eq:Adapter} \e…

  其中, X X X 表示预训练块的输出, W adp ∈ R d × d W_{\textrm{adp}} \in \mathbb{R}^{d\times d} WadpRd×d 是论文适配器的权重矩阵。对于全样本学习,保持 W adp W_{\textrm{adp}} Wadp 的满秩结构以保留足够的容量。在少样本学习中,可以通过将 W adp W_{\textrm{adp}} Wadp 分解为低秩矩阵 B A BA BA 的乘积来采用瓶颈结构,其中 B ∈ R d × r B\in \mathbb{R}^{d\times r} BRd×r A ∈ R r × d A\in \mathbb{R}^{r\times d} ARr×d ,且秩 r ≪ d r \ll d rd 。这种分解避免了过参数化,并显著减少了参数数目和计算量。

  在图像和文本编码器的每个Transformer层中部署适配器,放置在MHAMulti-Head Attention)和FFNFeed-Forward Network)层之后,如图2所示。

  由于适配器之前没有非线性结构,可以通过将其与最接近的预训练层集成进行重参数化,从而在推理过程中消除适配器的额外计算开销。用 W org W_{\textrm{org}} Worg 表示适配器之前的预训练层的权重,可以是来自MHA W O W_O WO 或者FFN中的 W 2 W_2 W2 ,相应的偏置 b org b_{\textrm{org}} borgFFN中的 b 2 b_2 b2 。给定预训练层的输入 X in X_{\textrm{in}} Xin ,那么重新参数化的过程如下进行:

KaTeX parse error: Undefined control sequence: \label at position 249: …_\textrm{rep}, \̲l̲a̲b̲e̲l̲{eq:rep} \end{a…

  其中, I ∈ R d × d \mathrm{I}\in\mathbb{R}^{d\times d} IRd×d 是单位矩阵, W rep = W org ( W adp + I ) W_\textrm{rep} = W_\textrm{org}(W_\textrm{adp}+\mathrm{I}) Wrep=Worg(Wadp+I) b rep = b org ( W adp + I ) b_\textrm{rep} = b_\textrm{org}(W_\textrm{adp}+\mathrm{I}) brep=borg(Wadp+I)

  • Dynamic Ensemble by Adapter Dropping

  为了增强R-AdapterOOD鲁棒性,加入适配器丢弃的动态集成技术。在训练过程中,适配器模块以以下方式被随机停用:

KaTeX parse error: Undefined control sequence: \label at position 74: …trm{adp}} + X, \̲l̲a̲b̲e̲l̲{eq:Stochastic}…

  其中, γ \gamma γ 是从 Bernoulli ( 1 − p ) \textrm{Bernoulli}(1-p) Bernoulli(1p) 中抽取的独立变量, p p p 是适配器丢弃的概率。

  与用于特征稀疏性的dropout或用于模型深度减少的drop-path不同,该技术独特地专注于在保持预训练特征的同时随机禁用适配器层。适配器丢弃不适用于推理阶段,这样可以创建一个由预训练层和适配器层组合而成的子网络集合。这种策略能够同时保留预训练知识和微调知识的动态集成多模型,从而在IDOOD数据上提升性能。

  • Temporal Ensemble by Accumulation

  通过利用适配器权重的历史累积,引入一个时间集成策略来提高模型的鲁棒性。在训练过程中,通过对多次迭代中的权重进行平均,集成技术捕捉到对特征空间的更广泛了解。累积适配器的权重 W ~ adp \tilde{W}_\textrm{adp} W~adp 则通过指数移动平均进行更新:

KaTeX parse error: Undefined control sequence: \label at position 116: …_\textrm{adp}, \̲l̲a̲b̲e̲l̲{eq:Accumulatio…

  其中, m ∈ [ 0 , 1 ] m \in [0, 1] m[0,1] 是控制动量更新速率的系数。这种方法在内存使用方面非常高效,因为只有适配器的参数进行了动量更新,而不是整个模型的参数。在推理阶段,利用累积的权重 W ~ adp \tilde{W}_\textrm{adp} W~adp 来计算重参数化权重 W ~ rep \tilde{W}_\textrm{rep} W~rep 和偏置 b ~ rep \tilde{b}_\textrm{rep} b~rep

  • Weight-space Ensemble by Re-scaling

  最后,引入一种通过重新调整参数实现预训练层和微调层之间的权重空间集成的策略。传统的权重空间集成(WiSE-FT)在原始预训练参数和微调参数之间进行线性插值,因此需要存储两个独立的模型。相比之下,论文采用重参数化的权重 W ~ rep \tilde{W}_\textrm{rep} W~rep 作为微调层的权重,从而进化了这个概念。我们在推理时重新调整适配器的权重并对其重参数化,将权重空间集成简化为单一模型内的实现。该过程可以表达如下:

KaTeX parse error: Undefined control sequence: \label at position 420: …ization}}}, \\ \̲l̲a̲b̲e̲l̲{eq:rescale} \e…

  这里, W ens W_\textrm{ens} Wens 表示集成的权重, α \alpha α 是一个重调整系数。系数 α \alpha α 充当插值因子,调整原始预训练权重 W org W_\textrm{org} Worg 与微调层调整权重之间的平衡。这种技术不仅可以提高在分布转移下的准确性,也能在ID数据上保持高性能。关键是,与WiSE-FT不同,该方法不需要在存储中维护两个单独的完整模型,因此更有效地促进了更节省存储空间的权重空间集成。

MPM-NCE Loss for Downstream Task

  为了增强下游任务的学习能力,使用与任务特征密切对齐的损失函数至关重要。视觉-语言任务通常涉及多个模态之间的对应关系。例如,在分类任务中,对同一类别使用不同的文本模板可能导致多个文本描述与单个图像匹配,反之亦然。这种情况在涉及图像和标题的跨模态检索任务中也会发生。当将零样本模型调整到新任务时,一种常见方法是使用预训练中使用的InfoNCE损失。然而,对于存在多个正样本的任务,该损失并不理想,因为它只考虑了单个正样本对。此外,InfoNCE学习了正负样本之间的顺序,这可能不会为下游任务产生足够有区分力的特征。

  为了解决这些限制,论文提出了MPM-NCE损失,旨在适应这些任务的多正样本性质,同时增强所学嵌入的区分能力。这个损失函数有两个关键改进。首先,使用软标签为多个正样本对分配相等的概率,公式如下:

$$
\begin{equation}
\tilde{y}{ij} = \frac{(1-\epsilon)\cdot y{ij}}{|P(i)|}

  • \frac{\epsilon \cdot (1-y_{ij})}{B-|P(i)|} \in [0,1],
    \label{eq:soft_label}
    \end{equation}
    $$

  其中 y i j ∈ { 0 , 1 } y_{ij} \in \{0,1\} yij{0,1} 表示样本 i i i j j j 之间的正关系, P ( i ) P(i) P(i) 是包括自身在内的样本 i i i 的正样本集合, ϵ \epsilon ϵ 是一种平滑标签噪声。这种软标签确保在下游任务中正确对齐多个图像-文本对。此外,软标签还可以包含 ϵ \epsilon ϵ ,通过对标签引入小的扰动来降低过拟合风险。

  第二个改进是对负样本对应用边界 δ \delta δ 。这个边界通过确保负样本对不仅是不同的,而且还要被一定的阈值分开,增强了所学特征的区分度。融合了这些改进,MPM-NCE公式如下:

KaTeX parse error: Undefined control sequence: \label at position 311: …/\tau}}\Bigg), \̲l̲a̲b̲e̲l̲{eq:MPM_NCE} \e…

  其中温度 τ \tau τ 被设为常数值0.01 δ i j \delta_{ij} δij 对于正关系为0,对于其他情况为 δ \delta δ 。因此,MPM-NCE损失鼓励模型正确对齐多个图像-文本对,并学习具有区分度的特征,从而在IDOOD下显著提高性能。

Experiments




如果本文对你有帮助,麻烦点个赞或在看呗~
更多内容请关注 微信公众号【晓飞的算法工程笔记】

work-life balance.

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

linux————根据端口查找运行目录的三种方法

先查询端口找到进程 netstat -anlpt | grep 16443 | grep -v grep tcp 0 0 0.0.0.0:16443 0.0.0.0:* LISTEN 3710563/nginx: mast tcp 0 0 192.168.110.253:16443 192.168.110.22:64430 ESTABLISHED 3710580/n…

When can I expect multiple “choices“ in an OpenAI response?

题意:"什么时候我可以在 OpenAI 的回复中预期到多个“选择”?" 问题背景: For a simple OpenAI api call in python 对于一个在 python 中简单的 OpenAI API 调用 response openai.ChatCompletion.create(model"gpt-4&quo…

vue2+ueditor集成秀米编辑器

一、百度富文本编辑器 1.首先下载 百度富文本编辑器 下载地址:GitHub - fex-team/ueditor: rich text 富文本编辑器 2.把下载好的文件整理好 放在图片目录下 3. 安装插件vue-ueditor-wrap npm install vue-ueditor-wrap 4.在你所需要展示的页面 引入vue-ueditor-wrap 此时…

苹果电脑需要安装杀毒软件吗?探索Mac的安全世界!

在聊到电脑安全时,许多Mac用户都骄傲地声称:“我的Mac是不会中病毒的!”确实,与Windows PC相比,Mac因其UNIX-based的操作系统构架,天生就更加安全。但这是否意味着Mac完全不需要杀毒软件呢?让我…

细胞因子系列

细胞因子是一类分泌性蛋白质,可以调控细胞之间的相互作用以及免疫反应等生物学过程。细胞因子在细胞信号传导、细胞生长、细胞分化和细胞凋亡等过程中起着重要作用。它们可以通过在细胞表面结合受体、介导细胞信号转导,从而调节免疫应答、细胞增殖和炎症…

Oracle RAC环境NBU异机恢复

一、故障原因 9月3日中午,主机运维人员误操作,对sydb数据库的ASM磁盘做了格式化,将三块共享磁盘做了分区,然后使用vgextend命令加入到本地文件系,造成sydb的两个实例异常,没有操作CRS磁盘,所以…

如何在IDEA的一个工程中创建多个项目?

在IDEA中,可以通过Module来创建新的工程。

仕考网:公务员考试资格审核时间是多久?

在国家公务员考试的报名过程中,考生完成信息填报并选定职位之后,资格审核结果将在提交后48小时内在报名信息页面公布。一般是从报名日次日上午8点开始,直至报名截止日次日18点结束。在此期间,考生可以通过国家公务员局的官方网站查…

8.分布式服务部署

文章目录 1.分布式服务部署1.1服务器个数1.2 ubuntu 的 MySQL 安装1.3对其他服务器授权1.4Java服务部署1.5常见问题 大家好,我是晓星航。今天为大家带来的是 分布式服务部署 相关的讲解!😀 1.分布式服务部署 1.1服务器个数 机器个数 1 - N…

Unity实战之滑动列表居中的放大其他的缩小功能

前言 最近项目需要做一个关卡选择列表,滑动到屏幕中间,代表该关卡被选中,展示选中状态。 预期效果 思路 使用3个父节点(左中右)用于挂载关卡item,通过改变关卡item的父节点来改变item的层级。 创建ui 创建父节点 首先创建一个空节点,命名为levelGroup,代表该节点…

硬刚苹果还得是华为

文|琥珀食酒社 作者 | 璇子 牛皮啊 华为发三折叠不意外 意外的是 这各种翻转简直颠覆想象 市面上没见过这么能“翻转”的? 要不怎么说硬刚苹果 还得看华为 就跟你同天怎么了? 拼创新、拼技术、拼热度 你就说哪比你差吧&#xff1f…

并联电容器后实际输出容量怎么测

要测量并联电容器后的实际输出容量,可以按照以下步骤进行: 1. 准备工作 断电安全:在进行任何测量之前,确保电容器和相关设备已经断电,以确保安全。检查设备:确保所有测量设备和仪器(如电容表、…

微信小程序实践案例

参考视频: https://www.bilibili.com/video/BV1834y1676P/?p36&spm_id_frompageDriver&vd_sourceb604c19516c17da30b6b1abb6c4e7ec0 前期准备 1、新建三个页面 "pages": ["pages/home/home","pages/message/message",&quo…

提升竞争力:优化多门店网络的方法

新型门店网络通过先进技术和架构,实现高效、安全的数据传输,优化业务流程,从而提升零售企业的运营效率和客户体验。核心组成包括扁平化网络架构、强大的无线覆盖及安全措施。随着AI和5G的推进,未来门店网络将不断创新,…

完整指南:CNStream流处理多路并发框架适配到NVIDIA Jetson Orin (三) 代码编译、各种问题解决、代码修改

目录 1 infer_server编译 1.1 infer_server/CMakeLists.txt修改 1.2 FindLibCompute.cmake编写 1.2 findLibCVCuda.cmake编写 1.3 ./3rdparty/config_lib_aarch64.sh修改 1.4 解决各种编译错误 1.4.1 /usr/include/c/11/bits/algorithmfwd.h:259:5: error: ‘pair’ doe…

最值得信赖的10款电脑监控软件推荐

随着信息时代的飞速发展,电脑监控软件在企业管理、家庭安全以及个人隐私保护等多个领域中发挥了重要作用。选择一款功能强大且值得信赖的电脑监控软件,能够帮助用户实现对电脑使用情况的全面监控,保障数据安全并提高工作效率。本文将为您推荐…

FPGA随记——OSERDESE2和IERDESE2

http://t.csdnimg.cn/yNvxf---看这个篇吧 这个挺好的 OSERDESE2 模块要求复位信号高电平有效,并且 需要将异步复位信号同步到串行时钟域。 除了用原语调用,还可以用High Speed SelectIO Wizard这个IP 进行调用 针对具体select IO这个IP的使用和介绍&…

期末C语言基本算法

期末C语言基本算法 题型一 输入两个学生a和b的成绩&#xff0c;输出其中高的成绩 # include <studio.h> void main() {float a,b,max;printf("please enter a and b:");scanf("%f,%f",&a&#xff0c;&b);if(a>b) max a;else max b;pri…

代码随想录:474. 一和零

474. 一和零 二维费用背包问题 class Solution { public:int findMaxForm(vector<string>& strs, int m, int n) {int l strs.size();int dp[110][110] {0};//dp[i][j]表示有i个0&#xff0c;j个1的子集长度for (int i 0; i < l; i) {//遍历字符数组int one …

「漏洞复现」蜂信物联 FastBee 开源物联网平台 download 任意文件读取漏洞

0x01 免责声明 请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;作者不为此承担任何责任。工具来自网络&#xff0c;安全性自测&#xff0c;如有侵权请联系删…