VisionTransformer(ViT)详细架构图

简介: VisionTransformer(ViT)详细架构图

这是原版的架构图,少了很多东西。

这是我根据源码总结出来的详细版

有几点需要说明的,看架构图能看懂就不用看注释了。

(1)输入图片必须是 224x224x3 的,如果不是就把它缩放到这个尺寸。

(2)Tranformer要的是嵌入向量的序列,大概是SeqLen, HidSize形状的二维数组,然后图像是H, W, C的三维数组,想把它塞进去必须经过一步转换,这是嵌入模块做的事情。

简单来讲就是切成大小为16*16*3的片段(Patch)然后每个片段都经过一步线性映射转换为长度768的一维向量。这一步在代码中通过一个Conv2d来一次性完成。

我们的这个卷积层,包含768 个大小为16*16*3的卷积核,步长等于卷积核大小。也就是说,它相当于把图像切成16*16*3的片段,然后每个片段和每个卷积核相乘并求和得到一个值。每个片段一共产生768个值,顺序排列得到一个一维向量,就是它的嵌入向量,然后所有片段的嵌入向量再顺序排列,得到整个图片的嵌入序列,就是这样。

(3)之后会在序列开头添加一个特殊的嵌入向量,是<CLS>,这个嵌入向量没有其它意义,只代表输出的这个位置的嵌入,应该计算为整个图像的类别嵌入。

(4)之后会添加位置嵌入,不是编码,因为它是可以学习的,也就是不锁定梯度。很多 Tranformer 都是位置嵌入,因为它是锁梯度的。

(5)位置嵌入之后会有个Dropout层,在论文原图中没有,似乎很多Bert或者GPT变体都会有这个东西。

(6)之后经过 12 个 TF 块,这个块和 Bert 是一样的,没有啥魔改。

(7)TF块之后会有个LayerNorm,原图里没有,这个也是很多变体里面出现过的。

(8)因为我们要分类,或者说论文中采用分类任务,需要取类别嵌入,也就是SeqLen维度的第一个元素。

(9)之后经过一个线性+Tanh,论文里面说只有预训练时期需要这个,迁移的时候可以直接扔掉。

(10)之后是线性+Softmax,用于把类别嵌入转化成图像属于各类的概率。

相关文章
|
12天前
|
机器学习/深度学习
ACM MM24:复旦提出首个基于扩散模型的视频非限制性对抗攻击框架,主流CNN和ViT架构都防不住它
【9月更文挑战第23天】复旦大学研究团队提出了ReToMe-VA,一种基于扩散模型的视频非限制性对抗攻击框架,通过时间步长对抗性潜在优化(TALO)与递归令牌合并(ReToMe)策略,实现了高转移性且难以察觉的对抗性视频生成。TALO优化去噪步骤扰动,提升空间难以察觉性及计算效率;ReToMe则确保时间一致性,增强帧间交互。实验表明,ReToMe-VA在攻击转移性上超越现有方法,但面临计算成本高、实时应用受限及隐私安全等挑战。[论文链接](http://arxiv.org/abs/2408.05479)
25 3
|
4月前
|
机器学习/深度学习 算法框架/工具 计算机视觉
ViT模型的出现标志着Transformer架构在计算机视觉中的成功应用
ViT模型的出现标志着Transformer架构在计算机视觉中的成功应用
64 2
|
5月前
|
机器学习/深度学习 编解码 人工智能
全面超越ViT,美团、浙大等提出视觉任务统一架构VisionLLAMA
【2月更文挑战第17天】全面超越ViT,美团、浙大等提出视觉任务统一架构VisionLLAMA
56 2
全面超越ViT,美团、浙大等提出视觉任务统一架构VisionLLAMA
|
机器学习/深度学习 人工智能 编解码
一文梳理视觉Transformer架构进展:与CNN相比,ViT赢在哪儿?(1)
一文梳理视觉Transformer架构进展:与CNN相比,ViT赢在哪儿?
583 0
|
人工智能 编解码 自然语言处理
7 Papers & Radios | 谷歌下一代AI架构Pathways论文放出;何恺明组只用ViT做主干进行目标检测(2)
7 Papers & Radios | 谷歌下一代AI架构Pathways论文放出;何恺明组只用ViT做主干进行目标检测
172 0
|
机器学习/深度学习 人工智能 编解码
7 Papers & Radios | 谷歌下一代AI架构Pathways论文放出;何恺明组只用ViT做主干进行目标检测(1)
7 Papers & Radios | 谷歌下一代AI架构Pathways论文放出;何恺明组只用ViT做主干进行目标检测
244 0
|
机器学习/深度学习 编解码 数据可视化
一文梳理视觉Transformer架构进展:与CNN相比,ViT赢在哪儿?(2)
一文梳理视觉Transformer架构进展:与CNN相比,ViT赢在哪儿?
341 0
|
10天前
|
安全 应用服务中间件 API
微服务分布式系统架构之zookeeper与dubbo-2
微服务分布式系统架构之zookeeper与dubbo-2
|
10天前
|
负载均衡 Java 应用服务中间件
微服务分布式系统架构之zookeeper与dubbor-1
微服务分布式系统架构之zookeeper与dubbor-1
|
2月前
|
Kubernetes Cloud Native Docker
云原生之旅:从容器到微服务的架构演变
【8月更文挑战第29天】在数字化时代的浪潮下,云原生技术以其灵活性、可扩展性和弹性管理成为企业数字化转型的关键。本文将通过浅显易懂的语言和生动的比喻,带领读者了解云原生的基本概念,探索容器化技术的奥秘,并深入微服务架构的世界。我们将一起见证代码如何转化为现实中的服务,实现快速迭代和高效部署。无论你是初学者还是有经验的开发者,这篇文章都会为你打开一扇通往云原生世界的大门。
下一篇
无影云桌面