首页 > 其他分享 >视觉Transformer和Swin Transformer

视觉Transformer和Swin Transformer

时间:2024-04-01 23:01:28浏览次数:19  
标签:Transformer Swin 编码器 MLP 模块 视觉 MHSA

视觉Transformer概述

ViT的基本结构:

①输入图片首先被切分为固定尺寸的切片;

②对展平的切片进行线性映射(通过矩阵乘法对维度进行变换);

③为了保留切片的位置信息,在切片送入Transformer编码器之前,对每个切片加入位置编码信息;

④Transformer编码器由L个Transformer模块组成,每个模块由层归一化(LN)、多头自注意力模块(MHSA)、多层感知机(MLP)及残差连接等构成;

多层感知机(MLP)icon-default.png?t=N7T8https://blog.csdn.net/JasonH2021/article/details/131021534

其中,z_{l}^{'} 和z_{l} 分别表示第 l 个模块中MHSA和MLP的输出特征

z_{l}^{'}=MSA(LN(z_{l-1}))+z_{l-1}

z_{l}=MLP(LN(z_{l}^{'}))+z_{l}^{'}

由于ViT关注分类问题,编码器的输出只关注最后一个Transformer模块的MLP头部信息,y=LN(z_{L}^{0})。只有在大规模数据集上进行预训练再迁移到中小规模数据集的条件下,ViT才能取得与当时最新卷积结构媲美的性能。

Swin Transformer

最大的贡献在于降低了self-attention的计算复杂度。

Swin Transformer在视觉Transformer的基础上引入了移动窗口(shifted windows)机制,采用“分而治之”的思想,将自注意力的计算限制在各个窗口内从而使得模型只有和输入图片尺寸相关的线性复杂度。

连续Swin Transformer块

其在Transformer编码器基础上,将对头自注意力模块(MHSA)替换为常规窗口多头自注意力(W-MHSA)和移动窗口多头自注意力(SW-MHSA)模块。

\hat{z}^{l}=W-MHSA(LN(z^{l-1}))+z^{l-1}

z^{l}=MLP(LN(\hat{z}^{l}))+\hat{z}^{l}

\hat{z}^{l+1}=SW-MHSA(LN(z^{l}))+z^{l}

z^{l+1}=MLP(LN(\hat{z}^{l+1}))+\hat{z}^{l+1}

其中,\hat{z}^{l}z^{l}分别表示第l个模块中(S)W-MSA和MLP的输出特征

标签:Transformer,Swin,编码器,MLP,模块,视觉,MHSA
From: https://blog.csdn.net/qq_47896523/article/details/137245946

相关文章

  • 学习transformer模型-Dropout的简明介绍
    Dropout的定义和目的:Dropout是一种神经网络正则化技术,它在训练时以指定的概率丢弃一个单元(以及连接)p。这个想法是为了防止神经网络变得过于依赖特定连接的共同适应,因为这可能是过度拟合的症状。直观上,dropout可以被认为是创建一个隐式的神经网络集合。PyTorch的nn.Drop......
  • 机器视觉学习(十一)—— 最小矩形和圆形区域、近似轮廓、凸包
    目录一、最小矩形区域与最小圆形区域 1.1 cv2.minAreaRect()函数1.2 cv2.minEnclosingCircle()函数1.3 最小矩形区域与最小圆形区域示例二、显示近似轮廓2.1 cv2.approxPolyDP()函数2.2显示近似轮廓示例代码2.2.1简约版 2.2.2 进阶版 三、显示凸包3.1 ......
  • 机器视觉学习(八)—— 阈值化
    目录一、阈值化二、二值化和示例2.1二值化2.2示例代码一、阈值化OpenCV是一个开源的计算机视觉库,可以用于图像处理和计算机视觉任务。阈值化是图像处理中的一种常见操作,可以将图像的像素值分成两个或多个不同的类别,通常是黑色和白色。使用OpenCV进行阈值化的步骤如......
  • 毕业设计:基于图像增强的交通标志识别系统 深度学习 机器视觉
    目录前言课题背景和意义实现技术思路一、算法理论基础1.1 直方图均衡化1.2SKNet 分类模型二、 数据集三、实验及结果分析3.1 实验环境搭建3.2 模型训练最后前言  ......
  • Transformer
    (self-attention)自注意力机制将词汇转化为向量表示,可以使用one-hot进行编码,但是这种编码方式认为所有的词之间是没有关系的还有一种方法是WordEmbedding,这种方法相似的词汇会聚集到一起。输入文字、声音和图等的输入都是一堆向量输出1、N->N(如词性标注)2、N->1(情绪......
  • 毕业设计:基于深度学习的物品识别目标检测系统 机器视觉
    目录前言设计思路一、课题背景与意义二、算法理论原理2.1深度学习2.2注意力机制三、检测的实现3.1数据集3.2实验环境搭建3.3实验及结果分析最后前言    ......
  • 视觉循迹小车(旭日x3派、摄像头、循迹)
    1、旭日x3派(烧录好系统镜像)2、USB摄像头3、TB66124、小车底盘(直流电机或直流减速电机) 视觉循迹原理x3派读取摄像头图像,转换成灰度图像,从灰度图像中选择第 120 行(图像的一个水平线),遍历第120行的全部320列,根据像素值小于或大于阈值,将相应的值(0 或 1)添加到 date 列表......
  • Java Swing容器:文件对话框
           文件对话框是专门用于对文件或目录进行浏览和选择的对话框。可以使用JFileChooser类创建文件对话框,其主要构造方法如下:JFileChooser():根据用户默认目录创建文件对话框。JFileChooser(FilecurrentDirectory):根据File型参数所指定的目录创建文件对话框。JFileCho......
  • Java Swing组件:表格
           表格(JTable)是将数据以二维的形式展示给用户,它包括行和列,每一行表示一个对象,例如一个学生,每一列表示对象的一种属性,例如学生的学号、姓名等。表格组件是采用MVC(ModelViewController)模式进行设计,按照MVC的设计理念,JTable类属于视图,对应的数据模型是TableModel接......
  • 解决import javax.swing.JTable;偶发性复制不了的问题
    解决方法:重写JTable类的键盘监听事件。 /** *20240313addhzh */ table.addKeyListener(newKeyListener(){ @Override publicvoidkeyPressed(KeyEvente){ //System.out.println("22222"); System.out.println("keycode"+e.getKeyCode())......