ViT学习笔记(二) Patch+Position Embedding阶段的详细推演与理解

news2025/2/27 14:27:32

 我认为讲得最好的一个文章:Vision Transformer详解-CSDN博客

有很多文章,自己并没有完全正确理解。

我的笔记,以ViT的标准应用为例:

        • 输入图像:输入图像的尺寸是224x224,且是RGB图像,因此输入张量的形状是 (224, 224, 3)。

        • Patch大小 patch_size: patch_size x patch_size = 16x16,这意味着每个patch的尺寸是16x16像素,且包含RGB3个颜色通道。如果以像素值为统计单位,每个Patch的大小是16*16*3 = 768。

        • Patch数量:将224x224的图像分割成16x16的patch,得到的patch数量为 (224/16) x (224/16) = 14 x 14 = 196 个patch。

        • 卷积、映射以及展平patch:使用一个卷积层(  nn.Conv2d  ),其卷积核大小(  kernel_size  )和步长(  stride  )均等于  patch_size = 16  ,16*16*3  = 768,这个卷积层实际上执行了一个线性变换,将每个  patch  展平成一个一维向量,其长度为  embed_dim = 768。当前共有14 * 14 = 196 个patch,所以,到了这个步骤,得到的向量的形状是:[196, 768]。

        添加位置信息:为了保留每个patch在图像中的相对位置信息,ViT使用位置embedding。位置embedding是一个可学习的参数,形状为 [196, 768],其中196是patch的数量,768是每个patch的embedding维度。
        加法操作:将位置embedding加到patch embedding上,两个等维度矩阵相加后维度不变,到了这个步骤,得到的向量的形状仍然是:[196, 768]。

        • Class Token(类别标记):在Transformer模型中,需要一个特殊的标记来聚合全局信息并进行分类,所以引入一个可学习的  class_token  ,其维度与  embed_dim  = 768 相同,初始化为零向量或其他值。将  class_token  添加到嵌入后的  patch  序列的开始位置,到了这个步骤,得到的向量的形状是:[197, 768]。

经过以上步骤,获得了形状为[197, 768]的特征向量,将其送入编码器。

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

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

相关文章

JS听到了强运的回响

正则表达式 介绍 正则表达式是用于匹配字符串中字符组合的模式,在JS中,正则表达式也是对象 通常用来查找,替换那些符合正则表达式的文本 就是筛选出符合条件的一类人 比如说 有人喜欢玩艾斯爱慕,那他喜欢的就是这一类人&…

工业4.0下的IT网络与OT网络

https://zhuanlan.zhihu.com/p/498984722 随着“中国制造2025”的深入推进,制药行业以手工为主的传统生产方式正在被以“工业4.0 ”为核心的自动化生产方式逐步替代。 为了实现生产自动化,很多制药企业都引入了由PLC(可编程逻辑控制器 &am…

C# MVVM 牛牛的实现依赖注入和MVVM绑定(DependencyInjection+CommunityToolkit)

这段时间在网上发现搜索MVVM数据绑定时,发现很多都是最基本的数据绑定,完全没有考虑依赖注入的问题,这里实现一下我们的方法,让我们的数据绑定和依赖注入都变得简单起来。 安装资源包 首先我们要下载一下资源包DependencyInject…

gitee常见命令

目录 1.本地分支重命名 2.更新远程仓库分支 3.为当前分支设置远程跟踪分支 4.撤销已经push远程的代码 5.idea->gitee的‘还原提交’ 需要和本地当前的代码解决冲突 解决冲突 本地工作区的差异代码显示 本地commit和push远程 6.idea->gitee的‘将当前分支重置到此…

【JAVA高级篇教学】第二篇:使用 Redisson 实现高效限流机制

在高并发系统中,限流是一项非常重要的技术手段,用于保护后端服务,防止因流量过大导致系统崩溃。本文将详细介绍如何使用 Redisson 提供的 RRateLimiter 实现分布式限流,以及其原理、使用场景和完整代码示例。 目录 一、什么是限流…

Python画泰勒图

1. 安装画泰勒图的库 pip install SkillMetricsSkillMetrics库在图的设置细节(模型标记符号、colorbar)有很多不足,比如无法按颜色区分每个散点。 注意!!! 提前算好数据的标准差、相关系数和中心化均方根…

可视化建模以及UML期末复习篇----UML图

这是一篇相对较长的文章,如你们所见,比较详细,全长两万字。我不建议你们一次性看完,直接跳目录找你需要的知识点即可。 --------欢迎各位来到我UML国! 一、UML图 总共有如下几种: 用例图(Use Ca…

【MySQL】——​​用一文领悟表的增删查改

目录 前言 🍃1.表的增加 🍙1.1增——insert 🍙1.2插入否则更新 🍤1.2.1影响行说明 🍂2.表的查询 🍘2.1查询——select 🍘2.2特殊表查询 🍥2.2.1添加表达式 🍥…

福昕PDF低代码平台

福昕PDF低代码平台简介 福昕PDF 低代码平台是一款创新的工具,旨在简化PDF处理和管理的流程。通过这个平台,用户可以通过简单的拖拽界面上的按钮,轻松完成对Cloud API的调用工作流,而无需编写复杂的代码。这使得即使没有编程经验的…

【数据结构实战】二叉树——从根节点到叶节点

🏝️专栏: 【数据结构实战篇】 🌅主页: f狐o狸x 目录 一、堆的应用 1.1 堆排序 1.2 topk问题 二、二叉树 2.1 二叉树链式结构的实现 2.2 二叉树的遍历 2.2.1 前序、中序以及后序遍历 2.2.2 层序遍历 2.3 节点个数以及高度等 2.3.…

命令模式的理解和实践

在软件开发中,设计模式是开发者们经过长期实践总结出来的、可复用的解决方案,用于解决常见的设计问题。命令模式(Command Pattern)是行为型设计模式之一,它通过将一个请求封装成一个对象,从而允许用户用不同…

vue-router查漏补缺

一、动态路由匹配 1.带参数的动态路由匹配 import User from ./User.vue// 这些都会传递给 createRouter const routes [// 动态字段以冒号开始{ path: /users/:efg, component: User }, ]这种方式的路由会匹配到/users/abc或者/users/123,路径参数用冒号:表示,并…

Ubuntu22.04深度学习环境安装【Anaconda+Pycharm】

anaconda可以提供多个独立的虚拟环境,方便我们学习深度学习(比如复现论文); Pycharm编辑器可以高效的编写python代码,也是一个很不错的工具。 下面就记录下Ubuntu22.04的安装流程: 1.Anaconda安装 下载Ana…

三维测量与建模笔记 - 6.2 结构光三维成像简介

简介 双目视觉系统中,找到左右图像中的同名点是很困难的。 即便是经过了极线校正,也存在很多问题比如高光等造成无匹配。对于结构光方案来说,找到同名点的过程会相对简单些。 结构光方案中,会增加一个投射器,将编码后的…

this version of the Java Runtime only recognizes class file versions up to 52.0

问题描述 Exception in thread "main" java.lang.UnsupportedClassVersionError: com/xxx/Main has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versi…

【开源免费】基于SpringBoot+Vue.JS在线办公系统(JAVA毕业设计)

本文项目编号 T 001 ,文末自助获取源码 \color{red}{T001,文末自助获取源码} T001,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 查…

【WRF理论第十三期】详细介绍 Registry 的作用、结构和内容

目录 1. Introduction:介绍 Registry 的作用和功能。2. Registry Contents:详细描述 Registry 的结构和内容,包括各个部分的条目类型。2.1. DIMSPEC ENTRIES(维度规格条目)2.2. STATE ENTRIES(状态变量条目…

Redis篇-4--原理篇3--Redis发布/订阅(Pub/Sub)

1、概述 Redis 发布/订阅(Publish/Subscribe,简称 Pub/Sub)是一种消息传递模式,允许客户端订阅一个或多个通道(channel),并接收其他客户端发布到这些通道的消息。 2、Redis 发布/订阅的主要概…

[大数据]Hudi编译集成

1. Hudi概述 1.1 Hudi简介 What is Apache Hudi Apache Hudi is the next generation streaming data lake platform. Apache Hudi brings core warehouse and database functionality directly to a data lake. Hudi provides tables, transactions, efficient upserts/dele…

Redis 数据结构(一)—字符串、哈希表、列表

Redis(版本7.0)的数据结构主要包括字符串(String)、哈希表(Hash)、列表(List)、集合(Set)、有序集合(Sorted Set)、超日志&#xff08…