万字长文解读深度学习——ViT、ViLT、DiT

文章目录

  • 🌺深度学习面试八股汇总🌺
  • ViT
    • 1. ViT的基本概念
    • 2. ViT的结构与工作流程
      • 1. 图像分块(Image Patch Tokenization)
      • 2. 位置编码(Positional Encoding)
      • 3. Transformer 编码器(Transformer Encoder)
      • 4. 分类标记(Classification Token)
    • 3. ViT的关键组件
      • 1. 图像块(Patch Embedding)
      • 2. 多头自注意力机制(Multi-Head Self-Attention)
      • 3. 位置编码(Positional Encoding)
    • 4. ViT与CNN的对比
    • 5. ViT的优势和挑战
      • 优势
      • 挑战
    • 6. ViT的应用
    • ViT 与 CNN 的混合模型 Hybrid ViT
  • ViLT
    • 1. ViLT 的工作流程
      • 1. 图像和语言的输入处理
      • 2. 图像和语言的融合
      • 3. 自注意力机制
      • 4. 输出处理
    • 2. ViLT 的主要创新点
      • 1. 无卷积特征提取器
      • 2. 视觉和语言的早期融合
        • 什么时候用 CLIP,什么时候用 ViLT?
      • 3. 简化的架构
    • 3. ViLT 的优缺点
      • 优点
      • 缺点
  • DiT
    • 1. DiT 的核心思想
    • 2. DiT 的组成元件
        • (1)图像块嵌入(Patch Embedding)
        • (2)位置编码(Positional Encoding)
        • (3)Transformer 编码器(Transformer Encoder)
        • (4)[CLS] 标记
        • (5)分类头或任务特定头部(Task-Specific Heads)
    • 3. DiT 的工作流程
    • 4. DiT 的优缺点
        • 优点
        • 缺点
    • 5. DiT 的典型应用场景
      • 与 OCR 结合的文档分析
    • 总结
  • ViT、ViLT、DiT区别和联系
    • 设计目标、输入类型、模型结构、适用任务对比

🌺深度学习面试八股汇总🌺

ViT

ViT(Vision Transformer) 是一种将 Transformer 模型用于计算机视觉任务中的创新架构。ViT 只使用了 Transformer 的编码器 部分进行特征提取和表征学习

1. ViT的基本概念

ViT 的核心思想是将传统的(CNN)的卷积操作替换为 Transformer 的注意力机制,借鉴 Transformer 模型在自然语言处理(NLP)中的成功经验,用于图像分类任务

2. ViT的结构与工作流程

ViT 模型的工作流程如下:

1. 图像分块(Image Patch Tokenization)

ViT 将输入的图像划分为固定大小的图像块(patches),并将这些图像块展开为一维向量,类似于将图像分成许多小的"单词"。然后,将每个图像块转换为一个嵌入向量,这些嵌入向量类似于 NLP 中的词嵌入(Word Embedding)。

  • 假设输入图像的尺寸是 224 × 224 224 \times 224 224×224,将其划分为尺寸为 16 × 16 16 \times 16 16×16 的小块。这将产生 14 × 14 = 196 14 \times 14 = 196 14×14=196 个图像块。
  • 每个图像块的像素值被展平成一维向量,并通过线性映射(全连接层)转换为固定维度的嵌入向量。

2. 位置编码(Positional Encoding)

因为 Transformer 的注意力机制不依赖于输入的顺序,而图像中的空间信息是重要的,因此需要给每个图像块添加位置编码(Positional Encoding),以保留图像块的位置信息。这样,Transformer 可以理解图像块之间的相对位置关系。

  • 位置编码的方式与 NLP 中的 Transformer 类似,使用正弦和余弦函数来编码图像块的位置。

3. Transformer 编码器(Transformer Encoder)

图像块和位置编码结合后,作为输入送入 Transformer 编码器。Transformer 编码器的每一层由多头自注意力机制(Multi-Head Self-Attention)前馈神经网络(Feed-Forward Network, FFN)组成,并通过残差连接和层归一化来保持梯度稳定性。

  • 多头自注意力机制:每个图像块与其他所有图像块之间的相似性通过自注意力机制计算,模型通过这种机制捕捉全局的特征表示
  • 前馈神经网络(FFN):每个图像块的特征表示通过前馈网络进一步提炼。

这个过程类似于传统的 Transformer 中对词的处理,只不过这里处理的是图像块

4. 分类标记(Classification Token)

ViT 模型在输入图像块之前,通常会添加一个分类标记([CLS] Token)。这个分类标记类似于 BERT 模型中的 [CLS] 标记,用来代表整个图像的全局特征。最终,经过 Transformer 编码器的处理后,CLS 标记的输出被用于进行图像分类

  • CLS 标记的输出经过一个全连接层,将其映射到目标类别空间中,得到最终的分类结果。CLS 是 “classification” 的缩写,表示分类。它是一个附加到图像块序列之前的向量,类似于 BERT 模型中处理文本任务时添加的 [CLS] 标记。CLS 标记没有直接对应于任何特定的图像块,它只是一个特殊的向量,用于捕获整个图像的全局信息

[0.9, 0.05, 0.05]
表示 90% 的概率是“猫”,5% 的概率是“狗”,5% 的概率是其他类别。

在这里插入图片描述

3. ViT的关键组件

1. 图像块(Patch Embedding)

ViT 将图像划分为固定大小的图像块,并将其展平为一维向量。这与传统 CNN 的卷积操作不同,CNN 的卷积操作是基于局部感受野,而 ViT 直接处理全局特征

2. 多头自注意力机制(Multi-Head Self-Attention)

ViT 的核心是使用多头自注意力机制来计算每个图像块与其他图像块之间的关系。与 CNN 通过层级卷积提取特征不同,ViT 通过全局的自注意力机制捕捉图像的特征表示。

3. 位置编码(Positional Encoding)

ViT 通过位置编码来为每个图像块提供位置信息,这在视觉任务中是非常重要的,因为图像块的相对位置对分类任务有重要影响。

4. ViT与CNN的对比

对比维度CNNViT (Vision Transformer)
局部 vs 全局依赖于卷积核的局部感受野,逐层提取局部特征并组合成全局特征通过自注意力机制直接捕捉图像块之间的全局关系
参数规模通常参数较少,适合处理小数据集,具有较好的泛化能力通常拥有更多参数,在小数据集上容易过拟合,但在大规模数据集上效果出色
数据需求在小数据集上表现稳定,具有先验信息(如卷积操作中的平移不变性缺少 CNN 中的先验信息,因此需要大规模数据集进行训练,在小数据集上表现不如 CNN

5. ViT的优势和挑战

优势

  • 全局信息捕捉:ViT 通过自注意力机制能够直接捕捉图像块之间的全局关系,而不依赖于局部的卷积操作。这在处理一些全局依赖性较强的任务时表现出色。
  • 充分利用数据的丰富性:ViT 在大规模数据集上训练时,能够充分利用数据的丰富性,并展示出优越的性能。尤其在超大规模数据集(如 ImageNet21k、JFT-300M)上,ViT 的性能超过了传统 CNN。

挑战

  • 数据需求量大:ViT 模型的参数量较大,因此需要大规模的数据集来训练。如果数据集规模较小,ViT 容易过拟合。
  • 训练复杂:与 CNN 相比,ViT 的训练更复杂,尤其在资源有限的情况下,训练大规模的 ViT 模型会面临内存和计算资源的挑战。

6. ViT的应用

主要用于图像分类任务,但其架构可以扩展到其他计算机视觉任务,如目标检测、图像分割、视觉问答等。由于其全局特征捕捉能力,ViT 在一些需要处理全局上下文的任务中表现尤为出色。

ViT 与 CNN 的混合模型 Hybrid ViT

Hybrid ViT 是一种将 CNN 和 Transformer 结合的架构,它将 CNN 用于特征提取Transformer 用于全局建模。可以补充,这种混合模型可以在一定程度上解决 ViT 在小数据集上的表现问题,并保留 Transformer 全局建模的优点。


ViLT

ViLT(Vision-and-Language Transformer) 是一种使用Transformer 的编码器视觉信息语言信息整合在同一Transformer架构中解决视觉与语言的联合任务的多模态模型

主要特点在于去除了传统视觉-语言模型中的卷积神经网络

ViLT 的主要创新点在于它不依赖卷积神经网络(CNN)来处理图像,而是通过直接将图像块和文本输入给 Transformer 模型,实现视觉和语言的早期融合

传统的视觉-语言模型有显著不同,传统模型通常会先提取,再结合(先通过卷积网络提取视觉特征,再与语言特征结合)。
早期融合和晚期融合指的是进入 Transformer 编码器的顺序,早期融合,在融合后再进入Transformer,CLIP等,是经过Transformer后提取特征进行对比,是晚期融合。

1. ViLT 的工作流程

ViLT 直接通过Transformer对图像和文本进行融合处理,它的工作流程可以概括为以下几个步骤:

1. 图像和语言的输入处理

  • 图像输入:与 ViT(Vision Transformer)类似,ViLT 通过将输入图像划分为固定大小的图像块(patch)。例如,一个 224 × 224 224 \times 224 224×224 的图像可以划分成多个 16 × 16 16 \times 16 16×16 的图像块,展平后形成向量序列。
  • 语言输入文本输入通过词嵌入(Word Embedding)表示为向量。文本的输入与 BERT 模型中的处理类似。

2. 图像和语言的融合

ViLT 的核心是通过单一 Transformer 模型同时处理图像和语言数据。其输入序列是图像块和词嵌入的融合。具体步骤如下:

  • 图像块嵌入+位置编码:每个图像块被展平成一维向量,并与对应的位置编码(Positional Encoding) 结合在一起,类似于 ViT。
  • 文本嵌入+位置编码:文本序列通过嵌入层映射为固定维度的向量,并且每个词也被添加位置编码
  • 联合输入图像块嵌入和文本嵌入会串联在一起,作为 Transformer 的输入序列。
    在这里插入图片描述

图像 patch 嵌入在前,文本 token 嵌入在后。如果需要,也会在前面加上【CLS】

3. 自注意力机制

ViLT 使用自注意力机制来捕捉图像块和文本词之间的相互关系。通过多头自注意力机制,模型可以让每个输入块(无论是图像还是词)与其他块交互,捕捉图像和语言之间的上下文信息。

这种全局的注意力机制能够高效地融合视觉和语言信息,从而使得模型能够处理如图文匹配、视觉问答等跨模态任务。

4. 输出处理

最终,ViLT 的输出经过 Transformer 编码器处理,得到的结果可以用于多种下游任务。具体根据任务的不同,输出会有不同的处理方式:

  • 图文匹配(Image-Text Matching, ITM):模型判断输入的图像和文本是否匹配,这可以用于图像-文本检索任务。
  • 视觉问答(Visual Question Answering, VQA):模型根据图像和问题文本生成答案。
  • 图像描述(Image Captioning):模型根据输入图像生成描述性文本。

2. ViLT 的主要创新点

1. 无卷积特征提取器

与传统的视觉-语言模型(如 LXMERT、UNITER 等)不同,ViLT 不使用卷积神经网络,而是直接将图像切分成小块后,使用 Transformer 模型对图像和文本进行融合处理

  • 优势:减少了模型的计算开销,因为不需要预训练一个大型 CNN 模型来提取视觉特征。
  • 挑战:直接处理图像块可能在细粒度视觉理解任务上存在性能瓶颈,尤其是在需要精细局部信息时。

2. 视觉和语言的早期融合

ViLT 通过早期融合(early fusion)的方式,将图像块和文本词嵌入直接结合在 Transformer 的输入中。

早期融合和晚期融合指的是进入 Transformer编码器的顺序,早期融合,在融合后再进入Transformer,CLIP等,是经过Transformer后提取特征进行对比,是晚期融合。

什么时候用 CLIP,什么时候用 ViLT?
  • 使用 CLIP

    • 当需要进行 图像-文本检索(给定图像或文本检索相关配对)时,CLIP 的对比学习在跨模态检索方面表现优异。
    • 零样本分类任务,CLIP 在没有类别标签的条件下,通过类别描述实现分类,无需对新类别进行微调。
    • 常规的 图像分类 场景中,CLIP 由于有强大的跨模态对比能力,可以使用类别描述进行分类,而不需要针对每个类别进行单独的训练。
  • 使用 ViLT

    • 视觉问答(VQA)图文匹配 任务中,ViLT 的早期融合能捕捉图像和文本间的细粒度关系,适合需要图像-文本联合推理的任务。
    • 细粒度的图文理解 任务中,如果任务需要在图像的局部信息和文本的上下文之间进行交互,ViLT 可以更有效地捕捉图像和文本之间的深层语义关系。

总结:

  • CLIP 适合在 跨模态检索、零样本分类简单图像分类 场景中使用。
  • ViLT 则更适合 视觉问答、图文匹配细粒度图文理解 场景。

3. 简化的架构

通过使用单一的 Transformer 模型处理图像和文本,ViLT 提供了一种简化的架构,避免了传统视觉-语言模型中分别处理图像和文本的复杂性。这种设计大大简化了模型的计算流程,同时在许多视觉-语言任务上仍然保持了很高的性能。

3. ViLT 的优缺点

优点

  • 计算效率高:由于不使用 CNN 或区域提取网络(如 Faster R-CNN),ViLT 相比传统视觉-语言模型具有更少的计算开销,训练和推理速度更快。
  • 模型简洁:单一的 Transformer 模型处理视觉和语言,避免了复杂的多模块设计,架构简单易于扩展。
  • 多模态融合效果好:通过早期融合,ViLT 能够捕捉图像和语言的全局上下文信息,表现出色。

缺点

  • 精细视觉特征提取能力较弱:由于没有使用卷积神经网络进行图像特征提取,ViLT 在处理需要细粒度视觉理解的任务时,可能性能不如传统模型。这是因为 Transformer 对局部信息的提取能力不如 CNN。
  • 对大规模数据集的依赖:和 Vision Transformer 类似,ViLT 在较小数据集上的表现可能不如传统方法,因此需要大规模数据集进行预训练才能发挥最佳性能。

DiT

DiT(Document Image Transformer) 是一种基于 Transformer编码器部分文档图像理解模型,处理复杂的文档图像任务,比如表格检测、文档分类和版面识别等图像理解任务

“文档图像”专指 文档类型的图像,包含文字和结构信息的文档内容,以图像的形式呈现,而非普通的自然图像(如风景图或人像)。例如扫描的文档、PDF 文件、发票、合同、表格、账单、报告等。

DiT 的设计灵感来自 ViT(Vision Transformer),但它针对文档图像特有的复杂布局结构进行了专门优化,以便更好地理解图像中的文字、表格、布局和视觉信息。

1. DiT 的核心思想

DiT 的核心思想是使用 Transformer 模型直接在文档图像上进行端到端特征学习信息抽取。它将文档图像划分成一系列小图像块,并使用 Transformer 结构对这些图像块进行全局建模。通过这种方式,DiT 能够捕捉到文档图像中的复杂布局和层次结构,实现文档级的图像理解

2. DiT 的组成元件

DiT 主要由以下几个关键组成元件构成:

(1)图像块嵌入(Patch Embedding)
  • DiT 首先将输入文档图像划分为固定大小的块(如 16x16 或 32x32 的图像块),然后对每个图像块进行展平处理,并通过一个线性变换层将其映射到固定维度的特征空间。
  • 这一步生成了每个图像块的特征向量,就像文本中的词向量一样。这些特征向量形成了一个序列,将作为 Transformer 编码器的输入。
(2)位置编码(Positional Encoding)
  • 为了使 Transformer 了解每个图像块在文档中的位置,DiT 使用了位置编码来表示图像块的位置。
  • DiT 中采用了类似 ViT 的绝对位置编码,将位置编码添加到每个图像块的嵌入中,从而让模型对文档布局的空间信息有清晰的感知。
(3)Transformer 编码器(Transformer Encoder)
  • DiT 的核心部分是堆叠的 Transformer 编码器层。每一层编码器包括多头自注意力机制和前馈网络,通过逐层提取图像块间的全局关系,DiT 可以学习到文档中不同区域间的长距离依赖关系
  • 由于文档图像往往包含复杂的排版和结构(如文本块、表格、图片等),Transformer 的全局建模能力可以更有效地捕捉这些信息。
(4)[CLS] 标记
  • 类似于 BERT 等语言模型,DiT 在输入序列的最前端添加了一个 [CLS] 标记,作为文档级的特征表示
  • 在 Transformer 编码器的最后一层,模型使用 [CLS] 标记的输出表示整个文档图像的综合信息。这个输出可以用于分类、特征提取或其他文档级任务
(5)分类头或任务特定头部(Task-Specific Heads)
  • 根据任务需求,DiT 会在 [CLS] 标记或每个图像块的输出后接入不同的任务特定头部:
    • 文档分类:基于 [CLS] 标记的输出进行分类。
    • 表格检测:输出每个图像块的特征,用于进一步的边界框预测。
    • 布局识别:结合每个图像块的特征,实现对文档内容的分块和标记。

3. DiT 的工作流程

DiT 的工作流程可以分为以下几个步骤:

  1. 图像预处理:将输入的文档图像划分成若干固定大小的图像块,并将其展平为向量表示。
  2. 图像块嵌入和位置编码:通过线性变换和位置编码,将每个图像块映射到 Transformer 可以处理的特征空间中,并形成输入序列。
  3. Transformer 编码:将图像块嵌入序列输入到 Transformer 编码器中,逐层捕捉图像块间的全局关系和文档的层次结构。
  4. [CLS] 标记和任务特定头部:通过 [CLS] 标记或每个图像块的特征输出执行文档级或块级任务,例如分类、布局分析等。

4. DiT 的优缺点

优点
  • 端到端文档理解:DiT 能够在不依赖 CNN 的情况下直接处理文档图像,实现端到端的文档理解,减少了特征提取的复杂性。
  • 强大的全局建模能力:Transformer 的自注意力机制使 DiT 在长距离依赖建模和复杂布局结构理解上表现出色,适合处理表格、复杂布局等文档元素。
  • 灵活性高:DiT 的输入可以扩展到不同大小和格式的文档图像,同时能够适应多种任务(如文档分类、表格检测、布局识别),具有较高的任务适应性。
缺点
  • 计算复杂度高:由于 Transformer 的自注意力机制,DiT 的计算复杂度为 ( O ( n 2 ) O(n^2) O(n2)),其中 (n) 是图像块的数量。在处理高分辨率文档图像时,可能导致计算和内存负担较大。
  • 对大规模数据依赖强:Transformer 模型通常需要大量数据进行预训练,以实现较好的泛化性能。DiT 在小数据集上的表现可能受到限制。
  • 位置敏感性较弱:虽然使用了位置编码,但 Transformer 本身并不直接感知图像的空间结构,可能在某些需要精确空间关系的任务中不如 CNN 表现优异。

5. DiT 的典型应用场景

  • 文档分类:通过 [CLS] 标记的输出对整个文档图像进行分类,例如文档类型识别。
  • 表格检测与识别:将文档图像中的表格区域检测出来,或进一步识别表格结构。
  • 文档布局分析:识别文档的布局结构,例如标题、段落、表格、图片等不同内容块的位置和类别。

与 OCR 结合的文档分析

在文档图像理解任务中,DiT 可以结合 OCR 提取文字信息,实现更全面的文档理解。面试中可能会考察如何在文档图像分析中结合 OCR,DiT 提取图像布局信息OCR 提取文字内容,两者结合可以进行复杂的文档内容分析。

OCR(Optical Character Recognition),即 光学字符识别,是一种通过识别图像中的文字并将其转化为计算机可编辑、可搜索文本的技术。OCR 在各种应用场景中被广泛使用,如文档数字化、表单处理、车牌识别等。OCR 技术能够从扫描文件、照片、PDF 等图像中提取文字信息,使文字数据易于存储、编辑、搜索和分析。

总结

DiT(Document Image Transformer) 是一个基于 Transformer 的模型,专门设计用于文档图像理解任务。通过直接将图像划分为块并使用 Transformer 进行全局建模,DiT 能够捕捉复杂的布局和层次信息,适合应用在文档分类、表格检测和布局分析等任务上。然而,由于其高计算复杂度和对大规模数据的依赖,DiT 在应用时需要权衡计算资源和模型性能。

ViT、ViLT、DiT区别和联系

ViT(Vision Transformer)ViLT(Vision-and-Language Transformer)DiT(Document Image Transformer) 都是基于 Transformer 的模型,专门针对图像分类图文融合文档图像理解。它们虽然共享一些相似的架构基础,但在设计目标、任务应用和数据输入等方面有显著的区别。以下是它们之间的区别和联系:


设计目标、输入类型、模型结构、适用任务对比

特性ViT (Vision Transformer)ViLT (Vision-and-Language Transformer)DiT (Document Image Transformer)
1. 设计目标适用于通用计算机视觉任务,如图像分类、分割专为 视觉-语言融合任务 设计,如视觉问答和图文检索专注于 文档图像理解,处理文档分类、表格检测、版面分析等
2. 输入类型仅接受 图像 输入,将图像划分为小块(patch)接受 图像-文本对 输入,直接处理视觉和文本信息仅接受 文档图像 输入,将文档图像划分为小块进行处理
3. 模型结构只使用 Transformer 编码器,堆叠多层编码器处理图像块轻量化设计,将图像和文本嵌入输入同一个 Transformer 编码器类似 ViT,只使用 Transformer 编码器,专注文档布局和结构信息
4. 适用任务和应用场景适合图像分类、目标检测、图像分割等计算机视觉任务适合视觉问答、图文匹配、图文检索等视觉-语言多模态任务适合文档分类、表格检测、版面分析等文档图像理解任务

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

嵌入式硬件杂谈(一)-推挽 开漏 高阻态 上拉电阻

引言:对于嵌入式硬件这个庞大的知识体系而言,太多离散的知识点很容易疏漏,因此对于这些容易忘记甚至不明白的知识点做成一个梳理,供大家参考以及学习,本文主要针对推挽、开漏、高阻态、上拉电阻这些知识点的学习。 目…

使用jmeter查询项目数据库信息,保存至本地txt或excel文件1108

知识点1:使用jmeter把项目数据库的数据导出,并使用jmeter导出数据库的数据 步骤1:使用jmeter把项目数据库的数据导出 (1)测试计划-添加- 线程组setUp线程组 setUp线程组:添加-配置元件-JDBC Connection …

Flink_DataStreamAPI_输出算子Sink

Flink_DataStreamAPI_输出算子Sink 1连接到外部系统2输出到文件3输出到Kafka4输出到MySQL(JDBC)5自定义Sink输出 Flink作为数据处理框架,最终还是要把计算处理的结果写入外部存储,为外部应用提供支持。 1连接到外部系统 Flink的D…

01-Ajax入门与axios使用、URL知识

欢迎来到“雪碧聊技术”CSDN博客! 在这里,您将踏入一个专注于Java开发技术的知识殿堂。无论您是Java编程的初学者,还是具有一定经验的开发者,相信我的博客都能为您提供宝贵的学习资源和实用技巧。作为您的技术向导,我将…

HarmonyOS Next星河版笔记--界面开发(4)

布局 1.1.线性布局 线性布局通过线性容器column和row创建 column容器:子元素垂直方向排列row容器:子元素水平方向排列 1.1.1.排布主方向上的对齐方式(主轴) 属性:.justifyContent(枚举FlexAlign&#…

webpack loader全解析,从入门到精通(10)

webpack 的核心功能是分析出各种模块的依赖关系,然后形成资源列表,最终打包生成到指定的文件中。更多复杂的功能需要借助 webpack loaders 和 plugins 来完成。 1. 什么是 Loader Loader 本质上是一个函数,它的作用是将某个源码字符串转换成…

如何用WordPress和Shopify提升SEO表现?

选择合适的建站程序对于SEO优化非常重要。目前,WordPress和Shopify是两种备受推崇的建站平台,各有优势。 WordPress最大的优点是灵活性。它支持大量SEO插件,帮助你调整元标签、生成站点地图、优化内容结构等。这些功能让你能够轻松地提升网站…

ArcGIS Pro属性表乱码与字段名3个汉字解决方案大总结

01 背景 我们之前在使用ArcGIS出现导出Excel中文乱码及shp添加字段3个字被截断的情况,我们有以下应对策略: 推荐阅读:ArcGIS导出Excel中文乱码及shp添加字段3个字被截断? 那如果我们使用ArGIS Pro出现上述问题,该如何…

24/11/13 算法笔记<强化学习> DQN算法

DQN算法的主要特点包括: 神经网络代替Q表:在传统的Q学习中,需要维护一个Q表来存储每个状态-动作对的Q值。而在DQN中,使用神经网络来近似这些Q值,这使得算法能够处理具有大量状态和动作的问题。 经验回放(E…

Blender进阶:图像纹理节点和映射节点

13 图像纹理节点 13.1 图像纹理节点 图像纹理节点,用于加载一张贴图 加载图片后,可以从图片上取得一个像素点。 输入:一个坐标矢量 输出:该坐标的像素颜色 演示:使用合并xyz节点来指定坐标。。 13.2 多种贴图 一…

MYSQL 库,表 基本操作

相关的两个编码集(简单了解即可) 1.数据库编码集 :对将要存储的数据进行编码 2.数据库校验集:对将要执行的操作(增删查改)数据是对数据编码的校验,本质也是一种读取数据库中数据库采用的一种编码格式。 总结:数据库无论对数据做…

万字长文分析函数式编程

目录 一.认识函数式编程 一、函数式编程的定义 二、函数式编程的思想 三、函数式编程的特点 四、函数式编程的应用 二.Lambda表达式 三.Stream流 3.1 创建流对象 3.2 注意事项 3.3 Stream流的中间操作 filter map distinct sorted limit skip flatMap 3.4 St…

DOM 规范 — MutationObserver 接口

前言 最近在重学 JavaScript 中,再一次接触到了 MutationObserver 内容,接着联想到了 Vue 源码中有使用过这个接口,因此觉得有必要对 MutationObserver 接口进行相关了解和学习。 下面是 vue 源码中关于 MutationObserver 接口使用的代码&a…

灰狼优化算法

一、简介 1.1 灰狼优化算法-Grey Wolf Optimizer 通过模拟灰狼群体捕食行为,基于狼群群体协 作的机制来达到优化的目的。GWO算法具有结构简单、需 要调节的参数少、容易实现等特点,其中存在能够自适应调整 的收敛因子…

AI 写作(五)核心技术之文本摘要:分类与应用(5/10)

一、文本摘要:AI 写作的关键技术 文本摘要在 AI 写作中扮演着至关重要的角色。在当今信息爆炸的时代,人们每天都被大量的文本信息所包围,如何快速有效地获取关键信息成为了一个迫切的需求。文本摘要技术正是为了解决这个问题而诞生的&#x…

【 ElementUI 组件Steps 步骤条使用新手详细教程】

本文介绍如何使用 ElementUI 组件库中的步骤条组件完成分步表单设计。 效果图: 基础用法​ 简单的步骤条。 设置 active 属性,接受一个 Number,表明步骤的 index,从 0 开始。 需要定宽的步骤条时,设置 space 属性即…

尽量通俗易懂地概述.Net U nity跨语言/跨平台相关知识

本文参考来自唐老狮,Unity3D高级编程:主程手记,ai等途径 仅作学习笔记交流分享 目录 1. .Net是什么? 2. .Net框架的核心要点? 跨语言和跨平台 .Net x Unity跨平台发展史 Net Framework 2002 Unity跨平台之 Mono 2004 Unity跨平台之 IL2CPP 2015 二者区别 .NET Core …

基于yolov8、yolov5的番茄成熟度检测识别系统(含UI界面、训练好的模型、Python代码、数据集)

摘要:番茄成熟度检测在农业生产及质量控制中起着至关重要的作用,不仅能帮助农民及时采摘成熟的番茄,还为自动化农业监测提供了可靠的数据支撑。本文介绍了一款基于YOLOv8、YOLOv5等深度学习框架的番茄成熟度检测模型,该模型使用了…

应用程序部署(IIS的相关使用,sql server的相关使用)

数据服务程序(API)部署 1、修改配置文件 打开部署包中的web.config配置文件,确认数据库登录名和密码正确 修改ip为电脑IP(winR输入cmd,输入ipconfig,IPv4对应的就是本机IP) 2、打开IIS&#x…

网页版五子棋——对战模块(服务器端开发②)

前一篇文章:网页版五子棋——对战模块(服务器端开发①)-CSDN博客 项目源代码:Java: 利用Java解题与实现部分功能及小项目的代码集合 - Gitee.com 目录 前言 一、创建并注册 GameAPI 类 1.创建 GameAPI 类 2.注册 GameAPI 类 …