Transformer在视觉的应用

news/2024/7/19 8:40:58 标签: transformer, 深度学习, 人工智能

文章目录

  • Vison Transformer
  • Swin Transformer
  • Visual Attention Network

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

Vison Transformer

  1. Linear Projection of Flattened Patches
    对于标准的Transformer模块,要求输入的是token(向量)序列,即二维矩阵[num_token,token_dim]。对于图像数据而言,其数据格式为[H,W,C]是三维矩阵明显不是Transformer想要的。所以需要先通过一个Embedding层来对数据做个变换。
    具体来说,直接使用一个卷积核大小为16x16,步距为16,卷积核个数为768的卷积来实现线性映射,这个卷积操作产生shape变化为[224,224,3]->[14,14,768],然后把H以及W两个维度展平(FlattenedPatches)即可,shape变化为([14,14,768]->[196,768]),此时正好变成了一个二维矩阵,正是
    Transformer想要的。
    在输入Transformer Encoder之前注意需要加上[class]token以及Position Embedding。

在这里插入图片描述
2. Transformer Encoder
Transformer Encoder其实就是重复堆叠如下 图所示的Encoder BlockL次,主要由以下几部分组成
MLPBlock就是全连接+GELU激活函数+Dropout组成也非常简单,需要注意的是第一个全连接层会把输入节点个数翻4倍[197,768]->[197,3072],第二个全连接层会还原回原节点个数[197,3072]->[197, 768]

3.MLP Head
上面通过Transformer Encoder后输出的shape和输入的shape是保持不变的,以ViT-B/16为例,输入的是[197,768]输出的还是[197,768]。
这里我们只是需要分类的信息,所以我们只需要提取出[class]token生成的对应结果就行,即[197,768]中抽取出[class]token对应的[1,768],因为self-attention计算全局信息的特征,这个[class]token其中已经融合了其他token的信息。接着我们通过MLP Head得到我们最终的分类结果。

在这里插入图片描述

  • 数据>策略>模型
    在这里插入图片描述
    在这里插入图片描述

Swin Transformer

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Visual Attention Network

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


http://www.niftyadmin.cn/n/5245099.html

相关文章

vue 学习 -- day39(reactive 对比 ref)

从定义数据角度对比: ref用来定义:基本类型数据。reactive用来定义:对象(或数组)类型数据。备注:ref也可以用来定义对象(或数组)类型数据, 它内部会自动通过reactive转为代理对象。从…

List的元素覆盖问题

问题场景 在备课底层JDBC链接链接数据库时,将读取的数据封装到对象中并添加到list集合中出现了问题。 错误逻辑 代码编写的考量为减少对象占用内存。想通过一个对象完成数据的传递和保存。 核心问题 List集合存储的是每一个对象的引用地址,如果引用的…

提高Google play马甲包应用上架成功率及延长应用在线时长相关措施探讨

众所周知,Google play不允许开发者们发布马甲包应用,开发者们需要采取一些措施来规避谷歌系统的审核,以便能成功上架马甲包应用和延长应用的在线时长,从而获得更多的曝光和下载量。 首先,需要对应用包进行包装&#xf…

学习IO的第四天

作业 : 使用两个子进程完成两个文件的拷贝&#xff0c;子进程1拷贝前一半内容&#xff0c;子进程2拷贝后一般内容&#xff0c;父进程用于回收两个子进程的资源 #include <head.h>int main(int argc, const char *argv[]) {int rd -1;if((rdopen("./01_test.c&quo…

MPI学习(一)

最近在狂补mpi的相关知识&#xff0c;看到一些不错的文章&#xff0c;比如 cnblogs.com/zhangyazhou/p/13376294.html MPI_Scatterv函数 - Message Passing Interface | Microsoft Learn 记MPI_Scatterv 和 MPI_Gatherv学习过程_我讨厌你_的博客-CSDN博客 18.2.313. MPI_Sc…

高效的单行python脚本

#-- coding: utf-8 -- “”" Created on Wed Dec 6 13:42:00 2023 author: czliu “”" 1. 平方列表推导 #使用列表推导法计算从 1 到 10 的数字平方 squares [x**2 for x in range(1, 11)] print(squares)2.求偶数 #可以使用列表推导式从列表中筛选偶数。还可以…

2023 金砖国家职业技能大赛网络安全省赛二三阶段样题(金砖国家未来技能挑战赛)

2023 金砖国家职业技能大赛网络安全省赛二三阶段样题&#xff08;金砖国家未来技能挑战赛&#xff09; 第二阶段&#xff1a; 安全运营 **背景&#xff1a;**作为信息安全技术人员必须能够掌握操作系统加固与安全管控、防火 墙一般配置、常见服务配置等相关技能&#xff0c;利…

动态规划学习——最长回文子序列,让字符串变成回文串的最小插入次数

一&#xff0c;最长回文串 1.题目 给你一个字符串 s &#xff0c;找出其中最长的回文子序列&#xff0c;并返回该序列的长度。 子序列定义为&#xff1a;不改变剩余字符顺序的情况下&#xff0c;删除某些字符或者不删除任何字符形成的一个序列。 示例 1&#xff1a; 输入&…