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

【论文研读】U-DiTs:在U型扩散Transformer中引入下采样Token,以更低计算成本超越DiT-XL/2

推荐理由

这篇论文提出了一种新的U型扩散Transformer模型(U-DiT),该模型通过对自注意力机制中的查询、键和值进行下采样,有效减少了计算冗余,同时提高了性能。论文中的研究不仅包含理论分析和实验验证,还展示了U-DiT模型在图像生成任务上的优越表现,能够以更低的计算成本超越现有的DiT模型。

速览

论文概述

本文研究了在潜在空间图像生成任务中使用U型扩散Transformer(U-DiT)模型。传统的Diffusion Transformers(DiTs)采用了各向同性的Transformer架构,在图像生成任务中表现出了强大的性能和可扩展性。然而,DiTs放弃了在许多先前工作中广泛应用的U-Net架构。本文首先通过简单的实验发现,U-Net架构的DiT(DiT-UNet)相比各向同性的DiT仅表现出微小的优势,表明U-Net架构中存在潜在的冗余。受U-Net骨干特征以低频成分为主这一发现的启发,本文提出了对自注意力机制中的查询-键-值元组进行下采样,从而在减少计算量的同时进一步提高了性能。基于下采样自注意力的方法,本文提出了一系列U型DiT模型(U-DiTs),并通过广泛的实验证明了U-DiT模型的卓越性能和可扩展性。

主要贡献

  1. 提出了U型扩散Transformer(U-DiT)模型:通过对自注意力机制中的查询-键-值元组进行下采样,本文设计了一系列U型扩散Transformer模型(U-DiTs),这些模型在保持高性能的同时显著减少了计算量。
  2. 实验验证了U-DiT模型的有效性:通过大量实验,本文证明了U-DiT模型在潜在空间图像生成任务中的卓越性能和可扩展性。特别是在与DiT及其改进版本相比时,U-DiT模型能够以更低的计算成本实现更好的性能。
  3. 深入分析了下采样自注意力的效果:本文通过对U-DiT模型中下采样自注意力机制的分析,揭示了其在减少计算冗余和提高模型性能方面的优势。此外,还通过实验验证了不同下采样方法和组件对U-DiT模型性能的影响。

论文及作者相关信息

  • 论文标题: U-DiTs: Downsample Tokens in U-Shaped Diffusion Transformers

  • 作者姓名:Yuchuan Tian, Zhijun Tu, Hanting Chen, Jie Hu, Chao Xu

  • 作者单位:北京大学, 华为诺亚方舟实验室

  • 原文地址:https://arxiv.org/pdf/2405.02730

  • 项目地址:https://github.com/YuchuanTian/U-DiT

相关资讯报道

https://www.jiqizhixin.com/articles/2024-11-15-5

论文内容解读

背景与挑战

研究背景

随着深度学习技术的飞速发展,特别是在计算机视觉和图像生成领域,Transformer架构逐渐崭露头角。Transformer通过其独特的注意力机制,能够有效捕捉图像中的长距离空间依赖关系,从而在多种视觉任务中表现出卓越的性能。从图像分类、目标检测到图像分割和图像修复,Transformer都展现出了其强大的应用潜力。然而,在图像生成任务,尤其是潜在空间图像生成任务中,Transformer的应用仍面临诸多挑战。尽管近年来提出的Diffusion Transformers(DiTs)通过引入Transformer架构到扩散任务中,取得了令人瞩目的性能和可扩展性,但现有的DiTs及其改进版本大多摒弃了传统的U-Net架构,转而采用各向同性的标准Transformer架构。这种转变虽然带来了性能上的提升,但也引发了研究者们对U-Net架构在降噪方面独特优势的重新思考。因此,本研究致力于探索在潜在空间图像生成任务中,将Transformer架构与U-Net架构相结合的潜力,以期在保持高性能的同时,进一步挖掘U-Net在降噪方面的独特优势。

相关工作与挑战

在现有的相关研究中,Vision Transformers (ViTs) 自2015年提出以来,因其能够有效建立长距离空间依赖关系的注意力机制,在多种视觉任务中展现出了高度有效性。ViTs通过将输入图像划分为一系列图像块(patch tokens),并引入完整的Transformer架构,实现了对图像特征的全面捕捉。尽管ViTs通常采用各向同性架构,但后续工作也在不断探索金字塔式的层次结构以及改进Transformer中的前馈网络模块,以进一步提升性能。

另一方面,Diffusion Transformers (DiTs) 将Transformer架构引入扩散任务,特别是在潜在空间图像生成方面取得了显著成果。通过一系列Transformer块的链式连接,DiTs在图像空间和潜在空间生成任务上均展示出了出色的性能和可扩展性。然而,DiTs及其改进版本在潜在空间图像生成任务中放弃了广泛应用的U-Net架构,转而采用各向同性的架构。这一转变虽然简化了模型结构,但也引发了研究者们对U-Net架构在降噪方面优势的忽视。

U-Net架构在扩散模型中的应用历史悠久,特别是在潜在空间扩散中,U-Net通过逐步下采样和上采样特征图,有效过滤噪声,展现出在降噪方面的独特优势。然而,在最近的基于Transformer的潜在空间扩散工作中,U-Net架构并未得到广泛认可和应用。

此外,在Vision Transformers中,为了降低计算成本,研究者们提出了对键-值对进行下采样的方法。然而,这些方法通常保持查询的数量不变,下采样操作并不完全,且可能涉及显著的信息损失。因此,如何在保持模型性能的同时降低计算成本,成为当前研究面临的一大挑战。

针对上述挑战,本论文的研究者们在改进现有方法时,参考了U-Net架构在扩散模型中的优势以及Transformer中下采样技术的潜力。他们首先提出了一个朴素的U-Net风格的DiT(DiT-UNet),并通过实验发现,尽管U-Net的归纳偏置在DiT-UNet中并未得到充分利用,但下采样技术为改进DiT-UNet提供了可能。基于这一发现,研究者们提出了一种对查询-键-值元组同时进行下采样的自注意力机制,并将其应用于DiT-UNet中。这一创新不仅显著降低了计算成本,还提高了模型性能。进一步地,研究者们扩展了U-Net架构,提出了一系列U形扩散Transformer(U-DiTs),并通过大量实验验证了其卓越的性能和可扩展性。

方法介绍

U-DiT 方法概述

在这篇论文中,作者提出了一种名为 U-DiT(U-shaped Diffusion Transformers)的方法,旨在优化基于 Transformer 架构的扩散模型在潜在空间图像生成任务中的表现。该方法的核心在于将 U-Net 架构与 Transformer 架构相结合,并通过下采样 tokens 的方式优化自注意力机制,从而在减少计算量的同时提升模型性能。

核心关键词

  • U-Net 架构:一种常用于图像分割和图像生成任务的卷积神经网络架构,其特点是具有编码器-解码器结构,通过下采样和上采样操作逐步提取和恢复图像特征。
  • Transformer 架构:一种基于自注意力机制的神经网络架构,广泛应用于自然语言处理和计算机视觉任务中。
  • Tokens 下采样:在自注意力机制中,对 query、key 和 value 进行下采样操作,以减少计算量并优化模型性能。

方法亮点

  • 结合 U-Net 与 Transformer 架构:传统扩散模型通常采用 U-Net 架构,而近期的研究表明,基于 Transformer 的扩散模型(如 DiT)在性能和可扩展性方面表现出色。本文通过将两者结合,旨在充分利用 U-Net 的归纳偏置和 Transformer 的强大建模能力。
  • Tokens 下采样优化自注意力机制:通过下采样 tokens,可以在保持模型性能的同时显著减少计算量。这一优化策略基于 U-Net 骨干特征的低频主导特性,即高频成分主要包含噪声,而下采样操作可以自然地滤除这些高频噪声。

方法步骤

1. 构建 U-Net 风格的 DiT 模型(DiT-UNet)
  • 模型结构:DiT-UNet 模型采用 U-Net 架构,包括编码器和解码器两部分,每部分包含多个阶段。在每个阶段,编码器通过下采样操作逐步减少特征图的空间尺寸,同时增加特征维度;解码器则通过上采样操作逐步恢复特征图的空间尺寸。
  • Skip 连接:在每个阶段之间,通过 skip 连接将编码器的特征图与解码器的对应阶段特征图进行融合,以补充解码器在上采样过程中丢失的信息。
2. 对 DiT-UNet 模型进行 Tokens 下采样优化
  • 下采样操作:在下采样 tokens 的过程中,将输入特征图转换为四个空间尺寸减半的特征图,然后分别将这四个特征图映射为 query、key 和 value,并在每个下采样后的特征图上分别执行自注意力操作。
  • 特征融合:在自注意力操作完成后,将下采样后的 tokens 在空间上进行融合,以恢复原始数量的 tokens。整个过程中,特征维度保持不变。

设计初衷与有效性分析

  • 设计初衷:通过结合 U-Net 架构和 Transformer 架构,并利用下采样 tokens 优化自注意力机制,旨在构建一种既具有强大建模能力又具有良好可扩展性的扩散模型。
  • 有效性分析
    在这里插入图片描述
    图中是对比U-DiTs与DiTs及其改进效果。在40万步训练后,本文作者们绘制了FID-50K与去噪器GFLOPs(采用对数刻度)的关系图。U-DiTs展现出了优于其同类模型的性能。
    下采样 tokens 策略能够显著减少计算量,同时保持或提升模型性能。这是因为 U-Net 骨干特征的低频主导特性使得高频成分主要包含噪声,而下采样操作可以自然地滤除这些高频噪声。如图所示,U-DiTs 在与 DiTs 的对比中,展现出了更优的性能表现,进一步验证了该方法的有效性。
3. 扩展模型规模并引入其他优化策略
  • 扩展模型规模:在验证了下采样 tokens 策略的有效性后,作者进一步扩展了 U-DiT 模型的规模,并与更大规模的 DiT 模型进行了比较。
    在这里插入图片描述
    图中展示了不同规模下U-DiTs与DiTs的性能对比。随着训练步骤的增加,U-DiTs的表现始终优于DiTs。标记的大小定性地反映了模型的计算成本。
    这一对比结果进一步证明了 U-DiT 方法在扩展模型规模时的优越性能。
  • 模型配置
    在这里插入图片描述
    图中展示了U-DiTs架构在不同模型规模下的配置情况。其中,“通道”指的是第一层初始输出通道的数量,“编码器-解码器”则表示编码器与解码器模块中的变压器块数量。
    U-DiTs 架构的配置情况对于理解其性能扩展和计算成本具有重要意义。通过调整通道数量和编码器-解码器模块中的变压器块数量,U-DiTs 能够在不同规模下实现性能与计算成本的平衡。
  • 引入其他优化策略:除了下采样 tokens 策略外,作者还引入了余弦相似度注意力、RoPE2D 位置编码、深度可分离卷积 FFN 和重参数化等优化策略,以进一步提升 U-DiT 模型的性能。

性能对比与生成质量

  • 性能对比
    在这里插入图片描述
    上表展示了在ImageNet 512 × 512 512\times512 512×512图像生成任务上,U-DiTs与DiTs的性能对比。标有星号(∗)的实验是根据DiT的官方代码进行复现的。本文作者们比较了在标准训练超参数下,训练40万次迭代后的模型表现。
    在更高分辨率的图像生成任务上,U-DiTs 与 DiTs 的性能对比进一步验证了 U-DiT 方法的优越性。通过标准训练超参数下的复现实验,U-DiTs 在 512 t i m e s 512 512\\times512 512times512 图像生成任务上展现出了更优的性能。

在这里插入图片描述
图中是U-DiT-L在100万次迭代后生成的样本。令人惊叹的是,U-DiT仅需100万步训练便能达到如此逼真的视觉质量。建议在屏幕上观看以获得最佳效果。

上述图片展示了 U-DiT-L 模型在 100 万次迭代后生成的样本,其视觉质量令人惊叹。这一图像不仅为读者提供了对 U-DiT 方法生成能力的直观感受,还有助于理解该方法在实际应用中的潜在效果。此外,图片中提及的 U-DiT-L 模型与本文讨论的 U-DiT 方法在潜在空间图像生成任务中的处理对象相符,进一步增强了文章内容的连贯性和可读性。

在这里插入图片描述
上图展示了随着训练的进行,生成样本的质量逐步提升。本文作者们从在ImageNet 256 × 256 256\times256 256×256数据集上训练了不同迭代次数的U-DiT模型中采样。更多的训练确实能增强生成质量。最佳观赏效果需通过屏幕查看。

通过上图,可以直观地看到 U-DiT 方法在 ImageNet 数据集上随着训练迭代次数增加,生成样本质量的逐步提升。这一图像进一步验证了 U-DiT 方法的有效性,并为读者提供了对训练过程中生成质量变化的直观感受。

在这里插入图片描述
上表是U-DiT组件的消融研究。除了第3节中的玩具示例外,本文作者们还通过比较在相同浮点运算量(FLOPs)下的U-DiT与精简版DiT-UNet,进一步验证了下采样的有效性。结果显示,下采样可为DiT-UNet带来约18个FID的改进。在U-DiT架构基础上的进一步修改,每项可额外提升2至5个FID。

通过上表的消融研究,本文作者们进一步确认了下采样策略在U-DiT架构中的关键作用,以及该策略对模型性能的显著提升。这一发现不仅加深了对U-DiT方法的理解,也为未来在扩散模型优化方面的研究提供了有价值的参考。

实验与结果

实验设计

U-Net风格的DiT设计

为了验证U-Net架构在DiT中的潜力,作者首先设计了一个简单的U-Net风格的DiT(DiT-UNet)。该模型由编码器和解码器组成,每个编码器或解码器阶段包含相同数量的DiT块。在每个编码阶段,特征图通过2倍下采样,特征维度翻倍,同时利用跳跃连接将编码阶段的输出与解码阶段的输出进行融合,以补充解码过程中因下采样丢失的信息。作者选择了三个编码/解码阶段,以适应紧凑的潜在空间(对于256x256大小的图像,潜在空间为32x32)。

为了比较U-Net风格的DiT与原始DiT的性能,作者将DiT-UNet与计算成本相似的DiT-S/4进行了对比。训练迭代次数为400K,所有训练超参数保持不变。

在这里插入图片描述

上图展示了在U-Net风格DiT上的玩具实验。原始的DiT-UNet表现略优于各向同性DiT S / 4 S/4 S/4;但有趣的是,当对自注意力应用标记下采样时,DiT-UNet以更低的成本实现了更好的性能。

在这里插入图片描述
上图展示了从DiT到所提U-DiT的演进。左图(a):原始DiT,采用各向同性架构。中图(b):DiT-UNet,一种朴素的U-Net风格DiT。在玩具实验中,尝试将DiT与U-Net进行简单结合。右图©:所提U-DiT。本文作者提出对输入特征进行下采样以用于自注意力机制。该下采样操作能显著优化DiT-UNet,大幅削减计算量。

改进后的U-Net风格DiT

在初步实验中发现,U-Net风格的DiT相较于原始DiT仅有微弱的优势。为了进一步提高性能,作者提出了对注意力机制进行改进。他们观察到,在潜在空间扩散模型中,U-Net骨干网络提供的特征主要以低频分量为主。基于这一发现,作者提出了对查询(Query)、键(Key)和值(Value)三元组进行下采样的方法,以过滤掉高频噪声,同时减少计算量。

下采样操作将输入特征图转换为四个2倍下采样的特征图,然后将这些下采样后的特征图映射为Q、K、V进行自注意力计算。自注意力在每个下采样后的特征图内独立进行,之后将下采样后的特征图合并以恢复原始数量的特征图。这种方法不仅减少了计算量,还保留了原始特征图的维度。

实验结果

初步实验结果

在初步实验中,作者发现U-Net风格的DiT(DiT-UNet)相较于原始DiT(DiT-S/4)在性能上仅有微弱的优势。这表明,简单地将U-Net与DiT块结合并没有充分利用U-Net的归纳偏置。

改进后的U-Net风格DiT性能

通过引入下采样注意力机制,U-Net风格的DiT在性能上有了显著提升。尽管计算量显著减少,但FID(Fréchet Inception Distance)指标却有所降低,表明图像生成质量得到了提高。具体来说,下采样注意力机制在保持计算成本相近的情况下,使FID降低了约18个点。

更大规模的模型比较

为了验证所提出方法的有效性,作者将U-DiT模型扩展到更大规模,并与更大规模的DiT模型进行了比较。实验结果显示,U-DiT模型在性能上显著优于DiT模型。具体来说,U-DiT-B模型在计算成本仅为DiT-XL/2模型的1/6的情况下,仍然能够取得更好的FID指标。U-DiT-L模型甚至能够在FID上比DiT-XL/2模型低约10个点。

此外,作者还进行了条件生成和无条件生成的实验,结果显示U-DiT模型在分类器指导下的生成性能也优于DiT模型。在扩展训练步数到100万步后,U-DiT模型的性能仍然持续提升,表明其具有良好的可扩展性。

消融实验

作者还进行了消融实验,以评估不同组件对U-DiT模型性能的贡献。结果显示,下采样注意力机制对性能的提升最为显著,而其他改进(如余弦相似度注意力、RoPE2D位置编码、深度可分离卷积FFN等)也进一步提高了模型的性能。即使在没有这些额外改进的情况下,原始的U-DiT模型仍然能够在性能上超越DiT-XL/2模型。

在这里插入图片描述
图中展示的是ImageNet数据集内的一张图片,尺寸为256x256像素。

实验结果表明,作者提出的U-DiT模型在性能上显著优于现有的DiT模型,同时具有更好的可扩展性。通过下采样注意力机制和其他改进,U-DiT模型能够在保持较低计算成本的同时,实现高质量的图像生成。

#State Key Lab of General AI, School of Intelligence Science and Technology, Peking University #Huawei Noah’s Ark Lab #计算机视觉 #人工智能

相关文章:

【论文研读】U-DiTs:在U型扩散Transformer中引入下采样Token,以更低计算成本超越DiT-XL/2

推荐理由 这篇论文提出了一种新的U型扩散Transformer模型(U-DiT),该模型通过对自注意力机制中的查询、键和值进行下采样,有效减少了计算冗余,同时提高了性能。论文中的研究不仅包含理论分析和实验验证,还展…...

2009 ~ 2019 年 408【计算机网络】大题解析

2009 年 路由算法(9’) 讲解视频推荐:【BOK408真题讲解-2009年(催更就退网版)】 某网络拓扑如下图所示,路由器 R1 通过接口 E1 、E2 分别连接局域网 1 、局域网 2 ,通过接口 L0 连接路由器 R2 &…...

.net core在linux导出excel,System.Drawing.Common is not supported on this platform

使用框架 .NET7 导出组件 Aspose.Cells for .NET 5.3.1 asp.net core mvc 如果使用Aspose.Cells导出excel时,报错 : System.Drawing.Common is not supported on this platform 平台特定实现: 对于Windows平台,System.Drawing.C…...

ExcelVBA编程输出ColorIndex与对应颜色色谱

标题 ExcelVBA编程输出ColorIndex与对应颜色色谱 正文 解决问题编程输出ColorIndex与对应色谱共56,打算分4纵列输出,标题是ColorIndex,Color,Name 1. 解释VBA中的ColorIndex属性 在VBA(Visual Basic for Applications)中&#xff…...

3.使用SD卡挂载petalinux根文件系统

前言 说明为什么使用SD卡挂载petalinux根文件系统如何使用SD卡挂载根文件系统 配置根文件写入类型制作SD分区格式化SD卡将工程目录下的rootfs.tar.gz解压到SD EXT4分区 为什么使用SD卡挂载petalinux根文件系统 Petalinux 默认的根文件系统类型是 INITRAMFS,不能…...

Java反射学习(1)(Java的“反射“机制、Class类对象的实例化方式)

目录 一、Java的"反射"机制。 (1)生活中的"反射"例子。 (2)Java的"反射"机制。 1、Java程序中"反射"的基本介绍。 2、"反射"机制图解介绍。 3、"反射"常见的应用场景…...

paimon中的Tag

TAG 在传统数仓场景中,从传统数据库中导入的事实表数据一般是全量导入,按天分区每天都存储一份全量数据,paimon对此提供了Tag机制,创建TAG时,会对当前数据做一份全量快照,在之后对表的数据进行更新也不会影…...

使用Vue创建前后端分离项目的过程(前端部分)

前端使用Vue.js作为前端开发框架,使用Vue CLI3脚手架搭建项目,使用axios作为HTTP库与后端API交互,使用Vue-router实现前端路由的定义、跳转以及参数的传递等,使用vuex进行数据状态管理,后端使用Node.jsexpress&#xf…...

4、交换机IP接口功能

这一篇是讲端口的功能的,应该放在路由前面的,不过关联不大,就这个顺序也行 1、DHCP功能 作用:交换机端口的DHCP功能可以使网络中的设备(计算机、打印机等等)能够自动的获取IP地址或其它网络参数&#xff0…...

java 选择排序,涵盖工作原理、算法分析、实现细节、优缺点以及一些实际应用场景

选择排序的详细解析 更深入地探讨选择排序的各个方面,包括其工作原理、算法分析、实现细节、优缺点以及一些实际应用场景。 动画演示 1. 基本概念 选择排序是一种简单的比较排序算法。它的核心思想是将数组分为两个部分:已排序部分和未排序部分。每…...

基于springboot+vue实现的医院急诊(病房)管理系统 (源码+L文+ppt)4-122

摘要 医院急诊(病房)管理系统旨在优化患者的就诊流程,提高医疗效率和服务质量。该系统通过电子化患者信息、实时床位监控和智能调度等功能,确保急诊患者能够快速得到必要治疗,同时协助医护人员高效管理病房资源。系统…...

前端模块化

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言1.概述1.1什么是模块化1.2为什么要使用模块化 2.有哪些模块化规范3.CommonJS3.1导入3.1.1正常导入3.1.2解构导入 3.2导出3.2.1exports导出3.2.2module.exports导…...

​在VMware虚拟机上设置Ubuntu与主机共享文件夹​

‌在VMware虚拟机上设置Ubuntu与主机共享文件夹的步骤如下‌: ‌主机共享文件夹的设置‌:首先,在主机上选择一个磁盘分区创建一个文件夹,并设置其共享属性。右键点击该文件夹,选择“属性”,然后在“共享”选…...

无线信道常识(符号与多径、窄带与宽带)

符号长度与时延扩展 符号长度: 符号长度是指一个符号(即一个信息单元)在传输过程中所占用的时间。符号长度通常与系统的带宽和调制方式有关。例如,在GSM系统中,符号长度大约为 5μs。 时延扩展: 时延扩展是…...

人工智能 (AI) 模型的数据泄露问题

目录 1. 数据泄露:2. 模型泄露:3. 社会工程学攻击:参考文献:其他资源: 人工智能 (AI) 模型的数据泄露问题指的是模型训练过程中,训练数据的信息被泄露到模型输出中,导致模型对未见过的数据产生偏差或错误预测。这种泄露可能来自多个方面,包括…...

uniapp Vue3 语法实现浏览器中音频录制、停止、保存、播放、转码、实时音频输出

一、引言 在现代 Web 应用开发中,音频处理功能变得越来越重要。本文将详细介绍如何使用 uniapp 结合 Vue3 语法在浏览器环境中实现音频录制、停止、保存、播放、转码以及实时音频输出等一系列功能。通过深入剖析代码结构和功能实现细节,帮助读者全面理解和掌握相关技术,以便…...

OSPF的基本配置

基本原理图 1. 要求: R1-3为区域0,R3-R4为区域1;其中r3的环回也在区域0。R1,R2也各有一个环回 R1-R3 R3为DR设备,没有BDR R4环回地址以固定,其他所有网段使用192.168.1.0/24进行合理的分配 R4环回不能宣告&#xff0…...

【Flutter_Web】Flutter编译Web第二篇(webview篇):flutter_inappwebview如何改造方法,变成web之后数据如何交互

前言 欢迎来到第二篇文章,这也是第二个难题,就是原有的移动端本身一些页面H5的形式去呈现(webview),例如某些需要动态更换内容的页面,某些活动页面、支付页面,不仅仅做页面呈现,还包…...

【游戏中orika完成一个Entity的复制及其Entity异步落地的实现】 1.ctrl+shift+a是飞书下的截图 2.落地实现

一、orika工具使用 1)工具类 package com.xinyue.game.utils;import ma.glasnost.orika.MapperFactory; import ma.glasnost.orika.impl.DefaultMapperFactory;/*** author 王广帅* since 2022/2/8 22:37*/ public class XyBeanCopyUtil {private static MapperFactory mappe…...

全局JDK环境和ES自带的JDK混用导致的ES集群创建失败

es配置安全集群es使用的自带的jdk环境,如果服务器全局在有jdk的配置。会导致秘钥解析出问题。各种问题异常密钥解析异常。 错误日志1: [2024-12-20T17:10:44,700][WARN ][o.e.c.c.ClusterFormationFailureHelper] [es-node1] master not discovered yet…...

vmime.net_4.dll详解:它是什么,有何用途?

在.NET开发环境中,DLL(Dynamic Link Library,动态链接库)文件扮演着至关重要的角色。它们封装了代码和资源,使得多个应用程序可以共享这些功能,从而提高开发效率和代码复用性。本文将详细介绍vmime.net_4.d…...

K8s 节点 NotReady 后 Pod的变化

NotReady 后 Pod的变化 当Kubernetes(K8s)节点进入NotReady状态时,该节点将无法接收新的Pod调度,这可能会影响服务的可用性。以下是节点变为NotReady后,其上Pod状态可能发生的一些情况和细节: Pod状态变为…...

使用 esrally race 测试 Elasticsearch 性能:实践指南

在 Elasticsearch 性能优化和容量规划中,使用 esrally 进行基准测试是官方推荐的方式。通过 esrally race 命令,您可以针对不同的数据集与挑战类型,对 Elasticsearch 集群进行精确的性能评估。本文将简要介绍常用的数据集与挑战类型&#xff…...

对象、函数、原型之间的关系

在 JavaScript 中,对象、函数 和 原型 是三者紧密联系的核心概念。它们共同构成了 JavaScript 中面向对象编程的基石,并通过原型链实现了继承与代码复用。本文将从对象、函数、原型的基础概念到它们之间的关系进行详细的讲解,帮助你理解 Java…...

Showrunner AI技术浅析(二):大型语言模型

1. GPT-3模型架构详解 GPT-3是基于Transformer架构的预训练语言模型,由OpenAI开发。其核心思想是通过自注意力机制(Self-Attention)处理输入序列,并生成自然语言文本。 1.1 Transformer架构基础 Transformer架构由Vaswani等人在…...

Web安全攻防入门教程——hvv行动详解

Web安全攻防入门教程 Web安全攻防是指在Web应用程序的开发、部署和运行过程中,保护Web应用免受攻击和恶意行为的技术与策略。这个领域不仅涉及防御措施的实现,还包括通过渗透测试、漏洞挖掘和模拟攻击来识别潜在的安全问题。 本教程将带你入门Web安全攻防…...

买卖股票的最佳时机 - 合集

************* C 买卖股票问题合集 ************* Since I have finished some stocks problems. I wanna make a list of the stocks to figure out the similarities. Here is the storks topucs list, from easy to hard: 121. 买卖股票的最佳时机 - 力扣(L…...

gitlab window如何设置ssh

在GitLab中设置SSH需要以下步骤: 在GitLab账户中,导航到“用户设置”下的“SSH密钥”部分。 生成SSH密钥对(如果你还没有的话)。在Windows上,你可以使用ssh-keygen命令来生成密钥。 在命令提示符或PowerShell中运行以…...

go配置文件

https://github.com/spf13/viper viper golang中常用的配置文件工具为viper库,是一个第三方库。viper功能: 解析JSON、TOML、YAML、HCL等格式的配置文件。监听配置文件的变化(WatchConfig),不需要重启程序就可以读到最新的值。...

深度学习之超分辨率算法——SRGAN

更新版本 实现了生成对抗网络在超分辨率上的使用 更新了损失函数,增加先验函数 SRresnet实现 import torch import torchvision from torch import nnclass ConvBlock(nn.Module):def __init__(self, kernel_size3, stride1, n_inchannels64):super(ConvBlock…...

GIT命令使用手册(详细实用版)

一、git常用操作参考 第一次提交完整步骤: 1.git init; 2.git add . 3.git commit -m "初始化" 4.git remote add origin https://github.com/githubusername/demo.git 5.git pull origin master 6.git push -u origin master(使用-u选项可以将…...

数据分析实战—IMDB电影数据分析

1.实战内容 1.加载数据到movies_df,输出前5行,输出movies_df.info(),movies_df.describe() # (1)加载数据集,输出前5行 #导入库 import pandas as pd import numpy as np import matplotlib import matplotlib.pyplo…...

【SQL/MySQL 如何使用三种触发器】SQL语句实例演示

触发器介绍 – 触发器是与表有关的数据库对象,指在insert/update/delete之前(BEFORE)或之后(AFTER),触发并执行触发器中定义的SQL语句集合。 – 使用别名OLD和NEW来引用触发器中发生变化的记录内容,这与其他的数据库是相似的。现在触发器还只…...

社区团购管理系统(源码+数据库)

355.基于SpringBoot的社区团购管理系统,系统包含两种角色:管理员、用户,系统分为前台和后台两大模块,主要功能如下 二、项目技术 编程语言:Java 数据库:MySQL 项目管理工具:Maven 前端技术:Vue …...

时钟分频模块

实现时钟的二分频,四分频 1.时钟分频模块: module clk_div(input clk, //50Mhzinput rst_n,input [15:0] lcd_id,output reg lcd_pclk);reg clk_25m; reg clk_12_5m; reg …...

linux ipmitool配置机器的BMC(服务器管理后台)

前置:mgnt口和网卡1连接入内网,并分配静态ip 1. 安装 ipmitool Debian/Ubuntu: sudo apt-get update sudo apt-get install ipmitool CentOS/RHEL: sudo yum install ipmitool2. 配置 BMC 的 IP 地址 #打印当前ipmi 地址配置信息。 ipmitool lan p…...

【Springboot知识】Redis基础-springboot集成redis相关配置

文章目录 1. 添加依赖2. 配置Redis连接3. 配置RedisTemplate(可选)4. 使用RedisTemplate或StringRedisTemplate5. 测试和验证 集群配置在application.properties中配置在application.yml中配置 主从配置1. 配置Redis服务器使用配置文件使用命令行 2. 配置…...

【数据结构】八大排序

目录 一、直接插入排序 二、希尔排序 三、选择排序 四、堆排序 五、冒泡排序 六、快速排序 七、归并排序 八、计数排序 稳定性结论 稳定性:排序后相同元素之间的相对顺序是否保持不变。 一、直接插入排序 基本思想:通过构建有序序列&#xff…...

mmdetection:图片推理以及将预测标签转换为YOLO格式标签

本文记录了使用 mmdetection 进行图片推理,并将推理结果坐标格式转换为yolo格式保存在txt中的代码。 文章目录 一、图片推理二、批量处理 一、图片推理 一个图片推理的demo。 import os import mmcv from mmdet.apis import init_detector, inference_detector fr…...

CV-OCR经典论文解读|An Empirical Study of Scaling Law for OCR/OCR 缩放定律的实证研究

论文标题 An Empirical Study of Scaling Law for OCR OCR 缩放定律的实证研究 论文链接: An Empirical Study of Scaling Law for OCR论文下载 论文作者 Miao Rang, Zhenni Bi, Chuanjian Liu, Yunhe Wang, Kai Han 内容简介 本论文在光学字符识别&#xf…...

从混沌到秩序:Python的依赖管理工具分析

Python 的依赖管理工具一直没有标准化,原因主要包括: 历史发展的随意性:Python发展早期对于依赖管理的重视程度不足,缺乏从一开始就进行统一规划和设计的意识 社区的分散性:Python社区庞大且分散,众多开发…...

【系统】Windows11更新解决办法,一键暂停

最近的windows更新整的我是措不及防,干啥都要关注一下更新的问题,有的时候还关不掉,我的强迫症就来了,非得关了你不可! 经过了九九八十一难的研究之后,终于找到了一个算是比较靠谱的暂停更新的方法&#x…...

小红书关键词搜索采集 | AI改写 | 无水印下载 | 多维表格 | 采集同步飞书

小红书关键词搜索采集 | AI改写 | 无水印下载 | 多维表格 | 采集同步飞书 一、下载影刀: https://www.winrobot360.com/share/activity?inviteUserUuid595634970300317698 二、加入应用市场 https://www.yingdao.com/share/accede/?inviteKeyb2d3f22a-fd6c-4a…...

【原生js案例】前端封装ajax请求及node连接 MySQL获取真实数据

上篇文章,我们封装了ajax方法来请求后端数据,这篇文章将介绍如何使用 Node.js 来连接 MySQL,并对数据库进行操作。 实现效果 代码实现 后端接口处理 const express require("express"); const connection require("../da…...

Ubuntu将深度学习环境配置移植到新电脑

这里默认新电脑已经安装好了conda、CUDA这些,可以直接创建新的虚拟环境。 参考链接: https://blog.csdn.net/Chujun123528/article/details/143788565https://blog.csdn.net/qq_41779275/article/details/122868946https://blog.csdn.net/YajunLin/art…...

vue基础作业实验十

vue基础作业实验十 实验要求案例要点:代码以及思考style部分Vue.js 部分Vue 实例部分 这段代码是一个基于 Vue.js 的静态页面,功能包括商品品牌的添加、删除和搜索。 实验要求 一、实验的基本内容 (1)Vue模板语法。 &#xff08…...

冒泡排序(JAVA)

package com.guangyunl.f_array;import java.util.Random; import java.util.Scanner;// 数组的冒泡排序 // 冒泡排序法是采用数组中相邻元素进行比较换位 public class Demo02Bubble {public static void main(String[] args) {Demo02Bubble demo02Bubble new Demo02Bubble()…...

如何测量分辨率

一、什么是分辨率? 分辨率指的是分清物体细节的能力。分辨率是一个成像系统还原空间频率的能力。一些人只是简单的用分辨率去描述极限分辨率,但是相机在在不同的对比度的情况下还原低,中和高频率的能力,也可以显示全面综合的信息。…...

【Mysql索引优化】索引优化的最佳实现

文章目录 【Mysql优化】索引优化的最佳实现1. 全值匹配:索引的最佳使用方式2. 最左前缀法则3. 尽量使用覆盖索引:优化查询性能。减少 select \* 语句4. 范围查询优化5. 不在索引列上做任何操作(计算、函数、(自动or手动&#xff0…...

centos使用mkisofs构建无人值守镜像(附官方学习文档)

安装mkisofs yum install -y mkisofs 挂载镜像并确认 并拷贝文件(/mnt 为我们的工作目录) 1.3 准备自动应答文件(保存为 ins.ks) 修改系统引导 实际上就是添加inst.ks 这个引导参数 传递应答文件 传统模式引导 UEFI模式引导 打包镜像 通用选项 -v:启用详细模式&a…...