深入探讨用于图像和视频生成的基于transformer的扩散模型

news2024/11/25 5:17:14

今天这篇文章探索了基于Transformer的扩散模型,用于图像和视频生成。尽管Transformer体系结构因其灵活性和可扩展性,在各个领域占主导地位,但在视觉生成领域,主要使用基于 CNN 的U-Net体系结构,特别是在基于扩散的模型中。为填补这一空白,本文引入了GenTron,这是采用基于Transformer的扩散生成模型。初始步骤是将Diffusion Transformers(DiTs)从分类到文本调整,这涉及对调整机制进行深入的经验性探索。然后,将GenTron的参数规模从约 900M 扩展到超过3B,观察到视觉质量的显著提升。此外,也将GenTron扩展到文本到视频的生成,引入了新颖的无运动引导以提高视频质量。

在与SDXL的对抗评估中,GenTron 在视觉质量方面达到了 51.1%的胜率(平局率为 19.8%),在文本对齐方面达到了 42.3%的胜率(平局率为 42.9%)。GenTron 在 T2I-CompBench 上也表现出色,突显了其在组合生成方面的优势。相信这项工作将提供有意义的见解,并为未来的研究提供有价值的参考。

GenTron 的网站链接:https://www.shoufachen.com/gentron_website/

引言

最近,扩散模型在内容创建方面取得了显著进展,影响了图像生成、视频制作、音频合成和代码生成等领域。在这些显著进展中,卷积U-Net架构已经成为主导的骨干设计,这与自然语言处理和计算机视觉感知领域的主流趋势相反,在这些领域中,基于注意力的Transformer架构赋予了复兴的作用,并变得日益主导。为了全面了解扩散生成中的Transformer并填补视觉生成与另外两个领域(视觉感知和自然语言处理)之间的架构选择差距,对使用Transformer进行视觉生成的彻底研究具有重要的科学价值。

作者在这项工作中专注于具有Transformer的扩散模型。具体而言,出发点是DiT(Diffusion Transformers)这一奠基性工作,它引入了一种类别条件的潜在扩散模型,采用Transformer替代了传统使用的 U-Net 架构。首先克服了原始 DiT 模型的局限性, 因为DiT仅能处理预定义类别(例如 1000 个)的限定数量,所以通过使用从开放世界、自由文本标题中派生的语言embedding,而不是预定义的 one-hot 类别embedding来克服。在这一过程中,作者全面调查了条件策略,包括(1)条件架构:自适应层归一化(adaLN) vs. 交叉注意力;以及(2)文本编码方法:通用大型语言模型 vs. 多模型的语言塔,或两者的组合。此外还进行了比较实验并提供详细的实证分析,以评估这些条件策略的有效性。

接下来,将探讨GenTron的扩展属性。Transformer 架构在视觉感知和语言任务中都表现出显著的可扩展性。例如,最大的密集语言模型有 540B 参数,而最大的视觉模型有 22B 参数。相比之下,最大的扩散 Transformer,DiT-XL,仅有约 675M 参数,远远落后于在其他领域(如 NLP)使用的 Transformers 和最近采用卷积 U-Net 架构的扩散艺术。为了弥补这一显著的差距,将按照 [67] 中的缩放策略,在两个维度上扩大GenTron,即Transformer块数量和隐藏维度大小。结果,最大的模型 GenTron-G/2 有超过 3B 参数,并相对于较小的模型取得了显著的视觉质量改进。

此外,还将GenTron从 T2I 扩展到 T2V 模型,通过在每个Transformer块中插入一个时间自注意层,首次尝试将 Transformers 作为视频扩散模型的独家构建模块。还讨论了视频生成中的现有挑战,并介绍了解决方案——无运动引导(MFG)。具体而言,该方法通过将时间自注意mask设置为单位矩阵,在训练期间间歇性地禁用运动建模。此外,MFG 与联合图像-视频策略无缝集成,其中在停用运动时使用图像作为训练样本。实验表明,这种方法明显提高了生成视频的视觉质量。

在人类评估中,GenTron 在视觉质量方面优于 SDXL,在视觉质量方面取得了 51.1% 的胜率(平局率为 19.8%),在文本对齐方面取得了 42.3% 的胜率(平局率为 42.9%)。此外,与先前的研究相比,特别是在与 T2I-CompBench(一个用于评估开放世界组合 T2I 生成的全面框架)进行基准测试时,GenTron 在各个标准上都表现出优越的性能。这些标准包括属性绑定、对象关系和处理复杂组合。

「本文的贡献总结如下:」

  • 对使用Transformer进行扩散模型 T2I 生成进行了深入而系统的调查。该研究涵盖了各种条件选择和模型缩放的方面。

  • 在创新性的尝试中,探索了一种纯Transformer架构的扩散模型,用于 T2V 生成。引入了无运动引导,这是一种高效微调 T2I 生成模型以生成高质量视频的创新技术。

  • 实验证明GenTron在人类评估中优于 SDXL。此外,与现有方法,特别是与 T2I-CompBench 评估进行基准测试时,GenTron 在各个标准上都表现出优越的性能。

相关工作

「T2I 和 T2V 生成的扩散模型」。扩散模型是一种从随机噪声生成数据样本的生成模型。随后,提出了用于高效 T2I 生成的潜在扩散模型。这些设计通常具有:

  1. 将图像映射到紧凑潜在空间的预训练变分自编码器

  2. 由交叉注意力模拟的条件器,以文本作为条件,并带有强度控制

  3. 主干网络,特别是 U-Net,用于处理图像特征。扩散在 T2I 生成任务上的成功强调了文本到视频(T2V)生成的潜在潜力。VDM 和 Imagen Video 将图像扩散架构延伸到时间维度,并取得了令人鼓舞的初步结果。

为避免过多的计算需求,视频潜在扩散模型将视频扩散过程实现在低维潜在空间中。

「基于Transformer的扩散」。最近,基于Transformer的扩散模型引起了越来越多的研究兴趣。其中,U-ViT 通过将Transformer块与 U-net 架构集成,将所有输入视为tokens。相反,DiT 采用了更简单的、非层次化的Transformer结构。MDT 和 MaskDiT 通过引入mask策略提高了 DiT 的训练效率。Dolfin 是一个用于布局生成的基于Transformer的模型。与此同时,PixArt-α 在基于Transformer的 T2I 扩散方面展现出有希望的结果。它使用了一个包含高质量数据的三阶段分解过程进行训练。本文的工作在关键方面与 PixArt-α 有所不同。首先,PixArt-α 强调训练效率,而本文的重点是 T2I Transformer扩散模型中的条件策略和可扩展性的设计选择。其次,作者将探索扩展到视频扩散的领域。在视频领域,并提出了一种创新的方法,这是 PixArt-α 所没有涵盖的。

方法

本节将会详细介绍GenTron的文本到图像生成,包括文本编码器模型、embedding集成方法以及GenTron的扩展策略。最后,建立在前面对 T2I 的基础上,将GenTron的应用扩展到视频生成。

预备知识

「扩散模型」。扩散模型已经成为一类生成模型,通过对随机噪声进行一系列转换生成数据。它们的特点是前向和后向过程。给定来自数据分布的实例 ∼ p(),在前向噪声处理过程中,随机的高斯噪声被迭代地添加到实例中,以创建一个遵循的马尔可夫链的随机潜在变量 。

其中 是与噪声时间表相对应的超参数。经过足够多的扩散步骤后, 可以被视为标准的高斯噪声。进一步训练去噪网络 来学习反向过程,即如何从嘈杂的输入中去除噪声。对于推理,可以从一个随机的高斯噪声 ∼ N(0; I) 开始对实例进行采样,并按照马尔可夫链的方式逐步去噪,即通过依次使用 对 到 进行采样:

其中, = ,, 是噪声规模。在实际应用中,可以使用不同的采样技术来进一步加速扩散采样过程。

「潜在扩散模型体系结构」。潜在扩散模型(LDMs)通过在潜在空间中进行扩散过程来降低高计算成本。首先,利用预训练的自编码器将原始图像从像素压缩到潜在空间,然后扩散模型,通常采用 U-Net 骨干结构,处理潜在空间。Peebles 等人提出了 DiT,将transformer结构作为传统的 U-Net 骨干结构的替代品,用于类条件图像生成,采用自适应层归一化(adaLN)进行类条件机制,如下图 2a 所示。

文本到图像 GenTron

GenTron基于 DiT-XL/2 构建,它将形状为 32×32×4 的潜在特征转换为非重叠tokens序列,采用 2×2 的裁剪层。然后,这些tokens被送入一系列的transformer块。最后,应用标准的线性解码器将这些图像tokens转换为潜在空间。

虽然 DiT 表明基于transformer的模型在类条件情景中取得了有希望的结果,但它没有探索 T2I 生成的领域。考虑到其不太受限制的条件格式,该领域提出了相当大的挑战。此外,即使是最大的 DiT 模型,DiT-XL/2,其 6.75 亿个参数,仍然明显不及目前拥有超过 30 亿参数的 U-Net 模型。为了解决这些局限性,研究对基于transformer的 T2I 扩散模型进行了深入的研究,专注于文本调整方法,并通过将GenTron扩展到超过 30 亿参数来评估transformer架构的可扩展性。

从类到文本条件

T2I 扩散模型依赖于文本输入来引导图像生成的过程。文本条件机制涉及两个关键组成部分:首先,文本编码器的选择,负责将原始文本转换为文本embedding,其次是将这些embedding集成到扩散过程中的方法。为了全面了解这两个组件方面的现有工作所做的决策,在附录中详细介绍了这些方面。

「文本编码器模型」。当前 T2I 扩散技术的发展采用各种语言模型,每个模型都有其独特的优势和局限性。为了全面评估哪种模型最能补充基于transformer的扩散方法,已将多个模型集成到GenTron中。其中包括来自多模型的文本塔,CLIP,以及纯大 语言模型,Flan-T5。本文的方法通过将每个模型独立地与GenTron集成,以评估它们的单独性能,以及通过组合它们来评估它们一起使用时可能提供的潜在特性,来探索这些语言模型的有效性。

「Embedding集成」。 在研究中,专注于两种embedding集成方法:自适应层归一化和跨注意力。

(1)「自适应层归一化 (adaLN)」 如前面图 2a 所示,这种方法将条件embedding作为特征通道上的归一化参数进行集成。在诸如 StyleGAN等有条件生成建模中广泛使用,adaLN 是 DiT中管理类别条件的标准方法。

(2) 「跨注意力」。如前面图 2b 所示,图像特征充当query,而文本embedding则充当key和value。该设置允许通过注意力机制在图像特征和文本embedding之间进行直接交互。此外,与[41]中讨论的交叉注意力不同,后者通过首先连接类别embedding和时间embedding一起处理,本文在交叉注意力中保持与 adaLN 一起使用,以分别对时间embedding进行建模。这种设计的基本原理是大家相信在所有空间位置上保持一致的时间embedding受益于 adaLN 的全局调制能力。此外,还在时间embedding后添加了池化文本embedding。

扩展GenTron规模

为了探索大幅扩展模型规模的影响,作者开发了GenTron的高级版本,称为 GenTron-G/2。该模型按照[67]中概述的扩展原则构建。专注于扩展三个关键方面:transformer块的数量(深度)、patch embeddings的维度(宽度)和 MLP 的隐藏维度(MLP 宽度)。GenTron 模型的规格和配置详见下表1。

值得注意的是,GenTron-G/2 模型拥有超过 30 亿个参数。这代表迄今为止开发的基于transformer的最大扩散架构。

文本到视频 GenTron

在本节中,详细介绍将GenTron从 T2I 框架调整为 T2V 框架的过程。详细说明对模型架构的修改,使GenTron能够处理视频数据,以及将讨论在视频生成领域遇到的挑战以及提出的创新解决方案。

GenTron-T2V 架构

「具有时间自注意力的transformer块」 。通常的做法是通过添加新的时间建模模块,包括 3D 卷积层和专注于沿时间维度计算注意力的时间transformer块,从图像扩散模型训练视频扩散模型。与传统方法不同的是,传统方法在 T2I U-Net 中同时添加了时间卷积层和时间transformer块,而我们的方法仅在每个transformer块中集成轻量级的时间自注意力(TempSelfAttn)层。如下图 3 所示,TempSelfAttn 层位于交叉注意力层之后和 MLP 层之前。

此外,作者通过在进入 TempSelfAttn 层之前重新重塑交叉注意力层的输出,然后在通过后将其重新重塑回其原始格式,修改了交叉注意力层的输出。这个过程可以正式表示为:

其中,b、t、n、d 分别表示batch大小、帧数、每帧的patch数量和通道维度。"rearrange"是来源于[50]的符号。作者发现一个简单的 TempSelfAttn 层足以捕捉运动,这与最近一项研究[63]的观察结果一致。此外,仅使用 TempSelfAttn 使得轻松开启和关闭时间建模成为可能。

「初始化」。使用预训练的 T2I 模型作为初始化 T2I 和 T2V 模型之间共享层的基础。此外,对于新增的 TempSelfAttn 层,将输出project 层的权重和偏差初始化为零。这确保在 T2V 微调阶段的开始,这些层产生零输出,与短路连接一起有效地作为恒等映射。

无运动引导

「遇到的挑战」。作者观察到当前 T2V 扩散模型中存在一个显著现象,即每帧的视觉质量明显滞后于 T2I 模型。此外,分析还显示,在 T2V 模型经过微调后,其视觉质量明显下降,特别是与其原始的 T2I 对应物相比。注意到了这些问题通常存在于当前的 T2V 扩散模型中,不仅限于基于transformer的 T2V。

「问题分析和见解」。作者推测 T2V 视觉质量滞后的现象主要源于两个因素:视频数据的性质和微调方法。首先,公开可用的视频数据集在质量和数量上通常不及图像数据集。例如,Laion-5b有超过 20 亿的英文图像文本对,而目前广泛使用的视频数据集 WebVid-10M 仅包含 1070 万个视频文本对。此外,许多视频帧受到运动模糊和水印的影响,进一步降低了它们的视觉质量。这种有限的可用性阻碍了强大而多功能的视频扩散模型的发展。其次,在视频微调期间专注于优化时间方面可能会无意中损害空间视觉质量,导致生成的视频总体质量下降。

「解决方案 I:联合图像-视频训练」。从数据方面考虑,采用联合图像-视频训练策略[8, 14, 28, 63]来缓解视频数据不足的问题。此外,联合训练有助于通过整合两种数据类型进行训练,缓解视频和图像数据集之间的域差异问题。

「解决方案 II:无运动引导」。将视频片段内的时间运动视为一种特殊的条件信号,类似于 T2I/T2V 扩散模型中的文本条件。基于这个类比,并提出了一种新方法,即无运动引导(MFG),灵感来自于无分类器引导,用于条件生成视频中运动信息的权重。

在特定的训练迭代中,该方法反映了无分类器引导中使用的概念,其中条件文本被替换为空字符串。不同之处在于,作者使用一个单位矩阵以概率 pmotion free 抵消时间注意力。这个单位矩阵在图 3(无运动掩码)中呈现,其对角线填充为 1,而所有其他位置为 0。这种配置将时间自注意力限制在单个帧内。此外,如前面中介绍的,时间自注意力是进行时间建模的唯一操作符。因此,使用无运动的注意力mask足以在视频扩散过程中禁用时间建模。

在推理过程中,有文本和运动的条件。受[6]的启发,可以修改分数估计为:

其中, 和 分别表示文本条件和运动条件。 和 是标准文本和运动的引导尺度,分别控制生成样本与文本条件和运动强度的对应程度。经验性地发现,固定 = 7.5 并调整 ∈ [1.0, 1.3] 对于每个示例倾向于达到最佳结果. 这一发现与 [6] 类似,尽管对 使用了更窄的范围。

「将解决方案结合起来」。可以将解决方案 I 和 II 结合在一起,具体方法如下:当在训练步骤中省略运动时,加载一对图像文本,并将图像重复 T-1 次以创建一个伪视频。相反,如果包含运动,则加载视频片段并将其提取成 T 帧。

实验

实施细节

「训练方案」 对于所有的GenTron模型变体,使用 AdamW 优化器,保持学习速率恒定为 作者使用一个多阶段的过程对 T2IGenTron模型进行训练,包括低分辨率(256×256)的训练,批量大小为 2048,优化步数为 500K,以及高分辨率(512×512)的训练,batch大小为 784,优化步数为 300K。对于 GenTron-G/2 模型,进一步整合了 Fully Sharded Data Parallel (FSDP)和激活检查点(AC)等策略,专门用于优化 GPU 内存使用。在本视频实验中,使用一个包含约 3400 万视频的视频数据集进行训练。为了优化存储使用和提高数据加载效率,视频经过预处理,分辨率的短边为 512 像素,帧率为 24 FPS。处理 128 个视频片段的批次。每个片段包括 8 帧,以 4 FPS 的采样率获取。

「评估指标」 主要采用最近的 T2ICompBench 来比较GenTron模型的变体,按照[4, 9]的方法。具体而言,比较属性绑定方面,包括颜色、形状和纹理。还比较空间和非空间对象关系。此外,进行用户研究来比较视觉质量和文本对齐。

GenTron-T2I 的主要结果

在本节中,将讨论实验结果,重点关注各种条件因素和模型大小对GenTron性能的影响。下表 2 呈现了本文研究的定量发现。

此外,本文提供了一种比较可视化,展示了所探讨的每个条件因素的效果,还提供了与先前研究的比较。

「交叉注意力 vs. adaLN-Zero」。最近的研究发现总结说,adaLN 设计在 FID 方面表现出色,在基于类别的场景中的效率优于交叉注意力和上下文条件。然而,我们的观察揭示了 adaLN 在处理自由文本条件方面的局限性。这个缺点在下图 4 中明显,adaLN 尝试生成熊猫图像的努力不足,而交叉注意力则表现出明显的优势。

在前面表 2 的前两行中,定量验证了这一点,交叉注意力在所有评估指标上普遍优于adaLN。

考虑到类别条件的性质,通常涉及一组有限的固定信号(例如 ImageNet 的 1000 个独热类别embedding),这个结果是合理的。在这样的情境中,adaLN 方法在全局空间层面操作,通过归一化层均匀调整所有位置的图像特征,使其适用于静态信号。相反,交叉注意力以更精细的粒度处理空间位置。它通过基于文本embedding和图像特征之间的交叉注意力图动态调制图像特征,区分不同的空间位置。这种对空间敏感的处理对于自由文本条件至关重要,其中条件信号是无限多样的,需要根据文本描述的具体内容进行详细表示。

「文本编码器的比较分析」。在前面表 2 中(第二行到第四行),对 T2I-CompBench 上的各种文本编码器进行定量评估,通过在模型之间保持一致的 XL/2 大小,确保了公平比较。结果显示,GenTron-T5XXL 在三个属性绑定和空间关系度量上均优于 GenTron-CLIP-L,而在其余两个度量上表现相当。这表明 T5 embedding在组合能力方面更为优越。这与[2]的观察一致,该研究在训练中同时使用 CLIP 和 T5 embedding,但在推断过程中单独测试它们或组合使用。与 eDiff 不同,本文的方法在训练和推断中保持相同的设置。值得注意的是,当结合 CLIP-L 和 T5XXL embedding时,GenTron 表现出更好的性能,表明模型能够利用每种文本embedding类型的独特优势。

「扩展GenTron规模」。在下图 5 中,展示了来自 PartiPrompts 基准的示例,以说明将我们的模型从大约 9 亿扩展到 30 亿参数所实现的定性增强。

两个模型都在相同的 CLIP-T5XXL 条件下运行。较大的 GenTron-G/2 模型在呈现更精细的细节和更准确的表示方面表现出色,特别是在合理化类似猫和报纸的对象布局方面。这导致了更一致和更真实的图像组合。相比之下,较小的 GenTron-XL/2 模型在产生具有相似配色方案的可识别图像方面表现不错,但在精度和视觉吸引力方面稍显不足。

此外,通过前面表 2 详细说明的在 T2I-CompBench 上的性能,GenTron-G/2 的优越性在定量上得到了证实。模型大小的增加与对象组合的所有评估标准(包括属性和关系)都相关联,表现出显著的改进。

「与先前工作的比较」。在下表 3 中,展示了来自 T2I-CompBench 的对齐评估结果。

本文的方法在所有领域都表现出色,包括属性绑定、对象关系和复杂组合。这表明本文的方法在组合生成方面具有更高的能力,尤其在颜色绑定方面具有显著的优势。在这方面,超过了先前的最先进(SoTA)基准集超过 7%。

「用户研究」。在下图 7 中可视化了本文的方法与 Latent Diffusion XL 的人类偏好。

作者在 PartiPrompt2 中使用标准提示,使用这两种方法生成 100 张图像,并在随机排列后匿名向人们询问他们的偏好。并收到了关于视觉质量和文本忠实度比较的三千次回答,本文的方法在这两个方面都以显著的优势脱颖而出。

GenTron-T2V 结果

在下图 6 中,展示了由 GenTron-T2V 生成的一些样本,这些样本不仅在视觉上引人注目,而且在时间上也是一致的。这突显了 GenTron-T2V 在创建既具有审美吸引力又在时间上一致的视频方面的有效性。

「无运动引导的影响」。在下图 8 中,对比了本文的GenTron变体,有无无运动引导(MFG)。为了进行公平评估,此比较保持了关键因素,如预训练的 T2I 模型、训练数据和训练迭代次数等等。结果清晰地表明,当与 MFG 集成时,GenTron-T2V 倾向于明显地专注于提示中提到的中心对象,通常以更详细的方式呈现。具体而言,该对象通常占据生成视频中更显著、中心的位置,从而在整个视频帧中占据视觉焦点。

结论

本文对基于 transformer 的扩散模型进行了深入探讨,用于文本条件的图像和视频生成。本研究结果揭示了各种条件方法的特性,并提供了在扩大模型规模时改善质量的有力证据。本文工作的一个显著贡献是开发了用于视频生成的GenTron模型,引入了无运动引导。这种创新的方法显著提高了生成视频的视觉质量。希望本文的研究能够填补将 transformer 应用于扩散模型以及在其他领域广泛应用的现有差距。

参考文献

[1] Delving Deep into Diffusion Transformers for Image and Video Generation

链接:https://arxiv.org/pdf/2312.04557

更多精彩内容,请关注公众号:AI生成未来

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

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

相关文章

MPLS专线和互联网专线有什么区别?如何选择?

MPLS和互联网专线是什么? MPLS专线和互联网专线是企业网络连接的常见方式。MPLS专线基于多协议标签交换(MPLS)该技术利用专线连接两个或多个分支机构,提供高质量的数据传输服务。互联网专线是基于公共知识产权基础设施的连接方式…

ElementPlus中的分页逻辑与实现

ElementPlus中的分页逻辑与实现 分页是web开发中必不可少的组件,element团队提供了简洁美观的分页组件,配合table数据可以实现即插即用的分页效果。分页的实现可以分成两种,一是前端分页,二是后端分页。这两种分页分别适用于不同…

c/c++ 文件操作(2)

文件操作读和写 顺序读写 1、fgetc、fputc 函数功能fgetc字符输入函数----->对应打开方式是 “r”fputc字符输出函数-----> 对应打开方式是 “w” 2、fgets、fputs 函数功能fgets文本行输入函数------> 对应打开方式是"r"fputs文本行输出函数------>…

社交网络分析2(上):社交网络情感分析的方法、挑战与前沿技术

社交网络分析2(上):社交网络情感分析的方法、挑战与前沿技术 写在最前面1. 情感分析的基本概念社交网络情感分析的挑战与应用 情感分析研究现状2. 根据分析的对象,情感分析可以划分为哪几种类型,简要地进行说明。词汇表…

如何测试和挑选 2024 年最佳 Mac 数据恢复软件

数据是无价的。有些具有货币价值,例如您的银行帐户详细信息或官方文件。其他的则具有情感价值且不可替代,例如家庭照片。所有这些都存储在您的硬盘中,任何事情都可能出错。它可能会遇到技术错误,例如恶意软件攻击或驱动器故障&…

认知觉醒(七)

认知觉醒(七) 第三章 元认知——人类的终极能能力 第一节 元认知:成长慢,是因为你不会“飞” 1946年10月24日,一群科学家为了研究太阳的紫外线,在美国新墨西哥州白沙导弹试验场发射了当时世界上最先进的V2液体火箭&#xff0…

RealSense最简单配置环境只需要5分钟,不用自行添加任何包含目录、库目录。Visual Studio2022、C++。

又开始搞点云了,现在用的是Intel的realsense。 看网上步骤都挺繁琐的,本文搭建只需要5分钟。直接用官方提供的属性表,不用自行添加任何包含目录、库目录。 第一分钟:用Visual Studio新建一个工程(此时你是没有intel.…

机器学习算法---分类

当然,让我为您提供更详细的机器学习算法介绍,重点在于每种算法的原理、优缺点,并在注意事项中特别提到它们对非平衡数据和高维稀疏数据的适应性。 1. 决策树(Decision Trees) 原理: 决策树通过学习简单的…

TCP/UDP 协议

目录 一.TCP协议 1.介绍 2.报文格式 ​编辑 确认号 控制位 窗口大小 3.TCP特性 二.TCP协议的三次握手 1.tcp 三次握手的过程 三.四次挥手 2.有限状态机 四.tcp协议和udp协议的区别 五.udp协议 UDP特性 六.telnet协议 一.TCP协议 1.介绍 TCP(Transm…

深入学习 C++编程,数据结构与算法关系

数据结构是计算机科学中非常重要的概念之一。它是一种组织和存储数据的方式,能够有效地操作和管理数据,以便提高算法的效率。 以下是一些为什么要有数据结构的原因: (1) 数据组织:数据结构可以帮助我们组织和管理大量的数据。通过…

SOLIDWORKS PDM—邮件信息系统

SOLIDWORKS产品数据管理 (PDM) 解决方案可帮助您控制设计数据,并且从本质上改进您的团队就产品开发进行管理和协作的方式。使用 SOLIDWORKS PDM Professional,您的团队能够:1. 安全地存储和索引设计数据以实现快速检索;2. 打消关于…

java项目 出现同名不同类的解决方法(万能)

目录 前言1. 问题所示2. 原理分析3. 解决方法4. 补充前言 该问题尤为复杂,特别是对现成项目进行编辑,环境尤为繁琐!(不过新手也常见) 下面以自身bug为例,困惑了几天~ 主要讲解排查的方式以及根源! 1. 问题所示 先以看故事的形式看这篇文章,会对你有感而发 在A类中…

mysql 与mssql 命令有那些区别

use databasename 进入指定数据库名 命令一致 select databse() 查询当前进入数据库的名 mssql无法使用,mysql正常 mssql 暂无 C知道介绍 以下是MySQL和MSSQL命令的一些区别: 1. 连接数据库的命令不同: - MySQL:…

docker 安装keepalived

docker 安装keepalived 1.Keepalived 简介 Keepalived 是 Linux 下一个轻量级别的高可用解决方案。高可用(High Avalilability,HA),其实两种不同的含义:广义来讲,是指整个系统的高可用行,狭义的来讲就是之主机的冗余和接管&…

56.微服务面试篇

目录 一、SpringCloud常见组件有哪些? 二、Nacos源码分析和Sentinel源码分析。 三、Nacos的服务注册表结构是怎样的? 四、Nacos如何支撑数十万服务注册压力? 五、Nacos如何避免并发读写冲突问题? 六、Nacos与Eureka的区别有…

Redis核心知识小结

基础 redis为什么快呢? 单线程基于io多路复用底层C语言对数据结构做了优化完全内存的操作 Redis6.0使用多线程是怎么回事? Redis不是说用单线程的吗?怎么6.0成了多线程的? Redis6.0的多线程是用多线程来处理数据的读写和协议解析&#x…

段错误详细解读

一、摘要 段错误(Segmentation Fault)是在编程中常见的错误之一,通常会导致程序崩溃。常出现在Linux系统当中,而且目前关于这方面的解决教程较少。 什么人会使用Linux?Linux 是世界上最受欢迎的操作系统之一&#xf…

产品入门第四讲:Axure动态面板

📚📚 🏅我是默,一个在CSDN分享笔记的博主。📚📚 ​​​​​ 🌟在这里,我要推荐给大家我的专栏《Axure》。🎯🎯 🚀无论你是编程小白,还…

TrustZone之强制隔离

TrustZone有时被称为一个强制执行的保护系统。请求者表示其访问的安全性,而内存系统决定是否允许该访问。内存系统基于何种方式进行检查呢? 在大多数现代系统中,内存系统的检查是由互连完成的。例如,Arm NIC-400允许系统设计人员为每个连接的完成者指定以下内容: • 安全…

ShenYu网关Http服务探活解析

文章目录 网关端服务探活admin端服务探活 Shenyu HTTP服务探活是一种用于检测HTTP服务是否正常运行的机制。它通过建立Socket连接来判断服务是否可用。当服务不可用时,将服务从可用列表中移除。 网关端服务探活 以divide插件为例,看下divide插件是如何获…