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

Transformer学习——Vision Transformer(VIT)原理

目录

一、概念

二、模型结构

三、数据流

Linear

patch 0


一、概念

Vision Transformer 是一种基于 Transformer 架构的计算机视觉模型,最初由谷歌研究团队在 2020 年提出。它将 Transformer 架构(原本用于自然语言处理任务)应用于图像分类任务,取得了显著的效果。

Vision Transformer 的引入标志着计算机视觉领域从传统的 CNN 向基于 Transformer 的新架构的一个重要转变。

二、模型结构

 将图像分割为固定大小的块,对每个块进行线性嵌入,添加位置编码,然后将生成的向量序列输入到标准Transformer编码器中。为了进行分类,我们使用了标准方法,即在序列中添加一个额外的可学习“分类标记”:0*

三、数据流

 (b, c, h, w):(b, 3, 256, 256)

b 代表batch size 批次大小;

c 代表通道数,彩色图片中c=3,就是三个通道rgb;

h w 分别代表图像的高和宽。

 (b, c, P^2c):(b, 64, 32*32*3)

b 代表batch size 批次大小;

N 代表图像切分的块数patch;

P 代表切分后的图像大小 P^2c 是 32x32x3(256/8=32,三个通道拉伸后:*3)

Linear

"Linear Projection of Flattened Patches" 指的是将图像分割成小块(称为patches),然后对这些patches进行展平(flatten),最后通过线性投影(linear projection)将展平后的向量映射到一个更低维度的空间。

其作用在于:在于将图像中的局部信息提取出来,并将其转换为可以输入到Transformer模型中的形式;特征提取和编码 、减少输入维度 、提升模型性能

作用在于将图像中的局部信息提取出来,并将其转换为可以输入到Transformer模型中的形式

patch 0

在Vision Transformer(VIT)中,需要额外输入一个小块(patch 0)通常是为了确保模型能够处理整个图像的信息。这种做法可以获得全局的信息:

尽管Transformer模型以自注意力机制为核心,可以在不同位置之间建立关联,但在某些情况下,特别是对于涉及全局上下文的任务(如图像分类),引入额外的全局信息有助于模型更好地理解整个图像。


http://www.kler.cn/a/552843.html

相关文章:

  • 一文看常见的消息队列对比
  • C++ 完美转发:泛型编程中的参数无损传递
  • redis解决高并发看门狗策略
  • 洛谷P11042 [蓝桥杯 2024 省 Java B] 类斐波那契循环数
  • 【Python爬虫(12)】正则表达式:Python爬虫的进阶利刃
  • 嵌入式音视频开发(二)ffmpeg音视频同步
  • 简单工厂模式 (Simple Factory Pattern) 在Spring Boot 中的应用
  • 自动化运维之ansible快速入门
  • 202303 青少年软件编程等级考试C/C++ 三级真题答案及解析(电子学会)
  • SVM对偶问题
  • SpringMVC重定向接口,参数暴露在url中解决方案!RedirectAttributes
  • EasyRTC:智能硬件适配,实现多端音视频互动新突破
  • SpringAI系列 - RAG篇(一) - Embedding Model
  • tcp首尾及总结
  • Socket通讯协议理解及客户端服务器程序流程
  • USART串口协议
  • 区块链钱包开发:探索数字资产管理的未来
  • IOT通道MQTT
  • 在Debian12.9安装ComfyUI--(一)Nvidia GPU环境配置
  • ART光学跟踪系统在汽车制造与设计审核中的实际应用