VIT速记

VIT架构

在这里插入图片描述

【ViT论文逐段精读【论文精读】】 【精准空降到 30:29】 https://www.bilibili.com/video/BV15P4y137jb/?share_source=copy_web&vd_source=f09504571c3138e9e610217797aba3a4&t=1829

  1. 首先把图片分为几个Patch,比如我们此时输入的图片为224*224*3,我们这里使用16*16的Patch size大小,那么可以得到N=224*224/16^2=196=14^2,也就是196个图像块,每一个图像块的大小是16*16*3=768的维度,也就是196*768维度
  2. 然后通过一个线性投射层
  3. 我们给这个 Patch Embedding加上一个位置信息,并且在开头加上一个cls(类似Bert)最后面用来
  4. 然后就把这些加入到一个Transformer Encoder去,最后又很多输出。我们拿cls当做一个token来输入后的结果当做分类的依据,后面可以再接上一个MLP来进行分类

过程

首先把图片分为几个Patch,比如我们此时输入的图片为224*224*3,我们这里使用16*16的Patch size大小,那么可以得到N=224*224/16^2=196=14^2,也就是196个图像块,每一个图像块的大小是16*16*3=768的维度,也就是196*768维度
在这里插入图片描述

然后经过经过一个全连接层(中间粉色的),他的输入是768,也就是原来得到的每一个Patch的维度,后面得到一个Embedding的维度,我们设为D,这里我们让D和输入一样,也就是D也是768。当然D是可以变得。最后出来的维度还是196*768

除了图像本身的token以外,我们还要再加一个cls token用来分类,所以最后进入Transformer Encoder的维度就是(196 + 1) * 768

在这里插入图片描述

然后我们加上一个位置编码信息,这里的位置编码信息是要去学习的,没有采用那个sin和cos那个位置编码。具体做法是有一个矩阵,每一行代表一个位置编码向量,向量维度就是768,也就是D,然后将位置编码加到(不是ConCat)Embedding上去。到此Transformer的输入就构造完了,维度是197*768

然后就进入Transformer中去。假设我们其中的多头注意力的头是12个。那么每个部分就是768/12=64,那么每个QKV就是197*64一共12个这样的。最后把结果拼接起来就又是197*768了。

在这里插入图片描述

然后经过Layer Norm和MLP,一般MLP中先把他变大(比如四倍),然后再投射回原来的维度,最后出来还是197*768

在这里插入图片描述

mean attention distance

d a b = l a b ∗ w a b d_{ab}=l_{ab} * w_{ab} dab=labwab

Vit中的Attention distance是怎么做的,有什么物理意义? - Glenn的回答 - 知乎
https://www.zhihu.com/question/492429589/answer/3097896708

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

渗透测试靶场环境搭建

1.DVWA靶场 DVWA(Damn Vulnerable Web Application)是一个用来进行安全脆弱性鉴定的PHP/MySQL Web应用,包含了OWASP TOP10的所有攻击漏洞的练习环境,旨在为安全专业人员测试自己的专业技能和工具提供合法的环境,同时…

判断闰年(1000-2000)

判断规则&#xff1a;1.能被4整除&#xff0c;不能被100整除是闰年,2.能被400整除是闰年 #include <stdio.h>int is_leap_year(int n){if((n % 400 0)||((n % 4 0)&&(n % 100 ! 0)))return 1;elsereturn 0; } int main() {int i 0;int count 0;for(i 1000;…

【C++精简版回顾】15.继承派生

1.继承派生的区别 继承&#xff1a;子继父业&#xff0c;就是子类完全继承父类的全部内容 派生&#xff1a;子类在父类的基础上发展 2.继承方式 1.public继承为原样继承 2.protected继承会把public继承改为protect继承 3.private继承会把public&#xff0c;protected继承改为pr…

179基于matlab的2D-VMD处理图像

基于matlab的2D-VMD处理图像&#xff0c;将图片进行VMD分解&#xff0c;得到K个子模态图&#xff0c;将每个模态图进行重构&#xff0c;得到近似的原图。可以利用这点进行图像去噪。程序已调通&#xff0c;可直接运行。 179 2D-VMD 图像分解重构 图像处理 (xiaohongshu.com)

什么是VR古迹探索|VR设备购买|VR文化旅游

VR古迹探索是利用虚拟现实&#xff08;Virtual Reality&#xff0c;简称VR&#xff09;技术来探索和体验历史古迹的方法。通过VR技术&#xff0c;人们可以在虚拟环境中逼真地模拟历史遗迹、古迹或文化遗产的场景&#xff0c;以全新的视角进行互动和探索。 通过VR古迹探索&#…

“智慧代码阁”千聊知识店铺成立了

前两天我在千聊上注册了知识店铺“智慧代码阁” 欢迎大家来购买更加精品的代码 点击这里进入知识店铺 非常感谢大家&#xff01;&#xff01;&#xff01; 欢迎来到“智慧代码阁”——您的专属知识宝库&#xff0c;专注于为代码爱好者和专业人士提供前沿、实用、系统的编程知…

、JMETER与它的组件们

os进程取样器 这个取样器可以让jmeter直接调用python写的测试数据 这样就可以调用python写的测试数据给到jmeter进行调用 注意&#xff1a;1建议python返回转json格式dumps一下&#xff1b;2py文件中需要把结果打印出来&#xff0c;可以不用函数直接编写 传到jmeter之后可以用…

手机备忘录导到电脑上有什么方法简单点

在这个信息爆炸的时代&#xff0c;我们每天都在处理海量的信息和待办事项。手机备忘录里记录着重要的灵感、会议安排、待购物品清单……但每次想在电脑上继续编辑或查看时&#xff0c;我都感到无比头疼。难道就没有一种简单的方法&#xff0c;能让手机备忘录和电脑轻松同步吗&a…

41、网络编程/TCP.UDP通信模型练习20240301

一、编写基于TCP的客户端实现以下功能&#xff1a; 通过键盘按键控制机械臂&#xff1a;w(红色臂角度增大)s&#xff08;红色臂角度减小&#xff09;d&#xff08;蓝色臂角度增大&#xff09;a&#xff08;蓝色臂角度减小&#xff09;按键控制机械臂 1.基于TCP服务器的机械臂…

fly-barrage 前端弹幕库(3):滚动弹幕的设计与实现

项目官网地址&#xff1a;https://fly-barrage.netlify.app/&#xff1b; &#x1f451;&#x1f40b;&#x1f389;如果感觉项目还不错的话&#xff0c;还请点下 star &#x1f31f;&#x1f31f;&#x1f31f;。 Gitee&#xff1a;https://gitee.com/fei_fei27/fly-barrage&a…

力扣-多数元素

问题 给定一个大小为 n 的数组 nums &#xff0c;返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的&#xff0c;并且给定的数组总是存在多数元素。 解答 class Solution {public int majorityElement(int[] nums) {Arrays…

Mathtype安装时word启动显示“文件未找到:MathPage.WLL”

背景 由于老板布置的临时工作&#xff0c;需要安装Mathtype&#xff0c;但尝试了3个不同的版本后&#xff08;每次都卸载干净了&#xff09;&#xff0c;均未能成功安装&#xff0c;出现的报错3个版本各不相同&#xff1a; ①解压安装过程中失败&#xff08;这个版本不再尝试…

SpringBoot 自定义映射规则resultMap association一对一

介绍 例&#xff1a;学生表&#xff0c;班级表&#xff0c;希望在查询学生的时候一起返回该学生的班级&#xff0c;而一个实体类封装的是一个表&#xff0c;如需要多表查询就需要自定义映射。 表结构 班级表 学生表 SQL语句 SELECT a.id,a.name,a.classes,b.id classes…

数电学习笔记——逻辑函数及其描述方法

目录 一、逻辑函数 二、逻辑函数的描述方法 1、逻辑真值表 2、逻辑函数式 3、逻辑图 4、波形图 三、逻辑函数的两种标准形式 1、最小项与最大项 最小项 最小项的性质 最大项 最大项的性质 2、最大项与最小项的关系 3、逻辑函数的最小项之和形式 4、逻辑函数的最…

羊大师分享,羊奶奶有哪些对健康有益的喝法?

羊大师分享&#xff0c;羊奶奶有哪些对健康有益的喝法&#xff1f; 羊奶奶有多种对健康有益的喝法&#xff0c;以下是一些建议&#xff1a; 直接饮用&#xff1a;将羊奶直接煮沸后饮用&#xff0c;可以保留羊奶中的营养成分&#xff0c;为身体提供全面的滋养。羊奶的丰富蛋白质…

Stable Diffusion 模型分享:Realistic Stock Photo(真实的库存照片)

本文收录于《AI绘画从入门到精通》专栏&#xff0c;专栏总目录&#xff1a;点这里。 文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八 下载地址 模型介绍 条目内容类型大模型基础模型SDXL 1.0来源CIVITAI作者PromptSharingSamaritan文件名称reali…

b站小土堆pytorch学习记录——P7-P8 Tensorboard的使用

文章目录 一、前置知识1.Tensorboard是什么2.SummaryWriter3.add_scalar()4.add_image() 二、代码1.一次函数2.蚂蚁和蜜蜂图片 一、前置知识 1.Tensorboard是什么 TensorBoard 是 TensorFlow 的可视化工具&#xff0c;它允许开发者可视化模型的图&#xff08;graph&#xff0…

智慧旅游+数字化景区整体解决方案:文件全文83页,附下载

关键词&#xff1a;智慧景区建设&#xff0c;智慧旅游一体化平台&#xff0c;数字化景区建设&#xff0c;智慧旅游建设&#xff0c;智慧景区解决方案&#xff0c;智慧文旅解决方案&#xff0c;智慧旅游解决方案 一、景区智慧旅游建设需求与背景分析 1、技术发展背景 随着信息…

pyspark(一) DataFrame结合jupyter入门

DataFrame描述 DataFrame是一个二维表结构&#xff0c;包括行、列以及schema&#xff08;元数据&#xff09; 在 Spark 中&#xff0c;DataFrame 是一种以 RDD 为基础的分布式数据集&#xff0c;是一种特殊的RDD&#xff0c;是一个分布式的表&#xff0c;类似于传统数据库中的…

力扣SQL50 使用唯一标识码替换员工ID 查询

Problem: 1378. 使用唯一标识码替换员工ID 思路 left join&#xff1a;左连接 Code select eu.unique_id,e.name from Employees e left join EmployeeUNI eu # left join 左连接 on e.id eu.id;