VisionTransformer(ViT)详细架构图

news2024/11/28 17:57:39

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

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

在这里插入图片描述

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

(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,用于把类别嵌入转化成图像属于各类的概率。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

文本嵌入层

1、代码演示 embedding nn.Embedding(10,3) print(embedding) input torch.LongTensor([[1,2,3,4],[4,3,2,9]]) embedding(input) 2、构建Embeddings类来实现文本嵌入层 # 构建Embedding类来实现文本嵌入层 class Embeddings(nn.Module):def __init__(self,d_model,vocab):…

uboot启动流程-涉及_main汇编函数

一. uboot启动流程涉及函数 本文简单分析一下 save_boot_params_ret调用的函数&#xff1a;_main汇编函数。 本文继之前文章的学习&#xff0c;地址如下&#xff1a; uboot启动流程-涉及s_init汇编函数_凌肖战的博客-CSDN博客 二. uboot启动流程涉及的 _main汇编函数 经过之…

微信公众号

title: “微信公众号” createTime: 2022-01-05T10:14:2008:00 updateTime: 2022-01-05T10:14:2008:00 draft: false author: “name” tags: [“杂”] categories: [“software”] description: “测试的” 公众号发布文章 文章目录 title: "微信公众号" createTim…

数据结构与算法基础-(5)---栈的应用-(1)括号匹配

&#x1f308;write in front&#x1f308; &#x1f9f8;大家好&#xff0c;我是Aileen&#x1f9f8;.希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流. &#x1f194;本文由Aileen_0v0&#x1f9f8; 原创 CSDN首发&#x1f412; 如…

UG\NX二次开发 通过点云生成曲面 UF_MODL_create_surf_from_cloud

文章作者:里海 来源网站:《里海NX二次开发3000例专栏》 感谢粉丝订阅 感谢 Rlgun 订阅本专栏,非常感谢。 简介 有网友想做一个通过点云生成曲面的程序,我们也试一下 效果 代码 #include "me.hpp" /*HEAD CREATE_SURF_FROM_CLOUD CCC UFUN */

小谈设计模式(6)—依赖倒转原则

小谈设计模式&#xff08;6&#xff09;—依赖倒转原则 专栏介绍专栏地址专栏介绍 依赖倒转原则核心思想关键点分析abc 优缺点分析优点降低模块间的耦合度提高代码的可扩展性便于进行单元测试 缺点增加代码的复杂性需要额外的设计和开发工作 Java代码实现示例分析 总结 专栏介绍…

python编写修改sqlmap进行_WAF绕过

WAF绕过 文章目录 WAF绕过1 waf机制了解1.1 waf防火墙识别工具1.2 WAF机制及绕过方法总结: [绕waf参考总结地址](https://www.freebuf.com/articles/web/229982.html)1.3 绕过waf&#xff08;安全狗&#xff09;方式 2 绕过分析 -替换格式3 编写py脚本绕过安全狗3.1启动编好的脚…

Bug:elementUI样式不起作用、Vue引入组件报错not found等(Vue+ElementUI问题汇总)

前端问题合集&#xff1a;VueElementUI 1. Vue引用Element-UI时&#xff0c;组件无效果解决方案 前提&#xff1a; 已经安装好elementUI依赖 //安装依赖 npm install element-ui //main.js中导入依赖并在全局中使用 import ElementUI from element-ui Vue.use(ElementUI)如果此…

VBA技术资料MF62:创建形状添加文本及设置颜色

【分享成果&#xff0c;随喜正能量】须知往生净土&#xff0c;全仗信、愿。有信、愿&#xff0c;即未得三昧、未得一心不乱&#xff0c;亦可往生。且莫只以一心不乱&#xff0c;及得念佛三昧为志事&#xff0c;不复以信、愿、净念为事。。 我给VBA的定义&#xff1a;VBA是个人…

OpenWinding PMSM 开绕组永磁同步电机零序电流抑制以及无感控制

文章目录 前言仿真模型观测器速度观测位置观测电流波形A相电流零序电流电流FFT 转矩波形 前言 记录下最近开绕组电机的学习记录。 零序电流抑制&#xff0c;120解耦调制&#xff0c;基于零序电压的转子观测 仿真模型 观测器 速度观测 位置观测 电流波形 A相电流 零序电流 电…

新手怎么做小说推文和短剧推广怎么申请授权

新手想做小说推文和短剧推广可以通过“巨量推文”进行授权 只要你懂发短视频内容&#xff0c;会一点剪辑即可通过短剧推广和小说推文来获取收入 小说推文和短剧都分为cpa和cps模式 另短剧又cpm模式收入&#xff08;按照广告点击&#xff09; cpa为拉新类&#xff0c;cps为充…

1859. 将句子排序

目录 一、题目 二、代码 一、题目 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 二、代码 定义了一个vector<vector<string>> v(MAX);采用const string& word : v[k] word 就会依次取得 v[k] 中的每个元素&#xff08;v[k][0],…

Python学习--with语句

国庆当然要学习了 with语句 with语句可以自动管理上下文资源&#xff0c;不论什么原因跳出with块&#xff0c;都能确保文件正确的关闭&#xff0c;以此来达到释放资源的目的 #跳出with块 文件正确关闭 with open(a.txt,r) as file:print(file.read()) with语句原理 MyConten…

git代码管理 分支相关 新建dev、hot分支,分支协同操作

初始化仓库后 会自动为我们创建master分支&#xff0c;我们也可以自己创建分支&#xff0c;每一个分支都有自己的一套工作区&#xff0c;暂存区&#xff0c;仓库区。 问题情景1 此时正在dev分支上开发新的功能&#xff0c;如果线上产生了一个bug&#xff0c;使用stash存储下在…

Arcgis克里金插值报错:ERROR 999999: 执行函数时出错。 表名无效。 空间参考不存在。 ERROR 010429: GRID IO 中存在错误

ERROR 999999: 执行函数时出错。 问题描述 表名无效。 空间参考不存在。 ERROR 010429: GRID IO 中存在错误: WindowSetLyr: Window cell size does not match layer cell size. name: c:\users\lenovo\appdata\local\temp\arc2f89\t_t164, adepth: 32, type: 1, iomode: 6, …

python: 用百度API读取增值税发票信息

# encoding: utf-8 # 版权所有 2023 涂聚文有限公司 # 许可信息查看&#xff1a; # 描述&#xff1a; # Author : geovindu,Geovin Du 涂聚文. # IDE : PyCharm 2023.1 python 311 # Datetime : 2023/9/30 6:56 # User : geovindu # Product : PyCharm # Proj…

智慧公厕:探索未来公共厕所的创新设计

近年来&#xff0c;随着城市发展的不断科技化&#xff0c;智慧公厕的设计成为了一个备受关注的话题。作为城市基础设施的重要组成部分&#xff0c;公厕不仅仅是简单的功能性建筑&#xff0c;更是体现了城市形象和管理水平的重要指标。在这篇文章中&#xff0c;我们将以智慧公厕…

【python】python实现杨辉三角的三种方法

文章目录 1.杨辉三角介绍&#xff1a;2.方法一&#xff1a;迭代3.方法二&#xff1a;生成器4.方法三&#xff1a;递归 1.杨辉三角介绍&#xff1a; 杨辉三角是一种数学图形&#xff0c;由数字排列成类似三角形的形状。它的每个数值等于它上方两个数值之和。这个三角形的形状可以…

【Linux】CentOS-6.8超详细安装教程

文章目录 1.CentOS介绍&#xff1a;2.必要准备&#xff1a;3.创建虚拟机&#xff1a;4 .安装系统 1.CentOS介绍&#xff1a; CentOS是一种基于开放源代码的Linux操作系统&#xff0c;它以其稳定性、安全性和可靠性而闻名&#xff0c;它有以下特点&#xff1a; 开源性&#xff1…

STM32F4X UCOSIII软件定时器

STM32F4X UCOSIII软件定时器 定时器概念 定时器在MCU中是一个很常用的外设&#xff0c;其作用是可以在某个事件点触发MCU中断&#xff0c;告知MCU处理事情。定时器跟生活中的闹钟很类似&#xff0c;可以设置闹钟每天什么时候响&#xff0c;还能设置响的次数&#xff0c;是响一…