transformer源码

1.传统RNN网络

每一层都需要上一层执行完才能执行
在这里插入图片描述

1.1 自注意力

在一句话中找到it_指代的是什么,它的上下文语境是什么?这里是引用
self-attetion计算
这里是引用
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.2 multi-header机制

在这里插入图片描述
这里是引用
在这里插入图片描述

1.3 堆叠多层self-attention,相当于再一次卷积

在这里插入图片描述

1.4 位置信息编码

这里是引用

1.5 残差连接与归一化

归一化(让训练速度更快更稳定),u=0是均值为0,=1是指标准层为1=1

1.6 decoder

这里是引用
在这里插入图片描述
其他的和encoder一样在这里插入图片描述
在这里插入图片描述

1.7 整体架构

encoder:输入文本序列,进行多次(N次)的encoder(self-attention),然后进行多头的self-attention(multi-head attention),可能越学越差,因此加入残差连接和归一化。
dcoder:加入掩码,输入为encoder的k1…kn和v1…vn序列,及decoder的q1…qn。其他和encoder一样在这里插入图片描述

2 处理图像架构VIT

图像经过卷积提取出特质,然后将其转换为300的向量。然后将向量经过全连接层,如把300维的向量映射为256的(特征重新整合)。在这里插入图片描述

2.1 VIT图像分割后位置编码

vit中方式1:不加位置编码;方式2:二维形式比位置编码;方式3:分割顺序位置编码。
位置编码中0不是所有任务都用到,一般用于分类,在分割检测时候就没有了。
经过encoder将图像转换为一种计算机可以识别的特征形式。
在处理分类任务时会将1-9的结果整合到0
,然后用0性*特征向量驱处理分类。
0-9分别是10个token在这里插入图片描述
代码步骤二做完的事情,图1
在这里插入图片描述
图二
在这里插入图片描述
图三
在这里插入图片描述

2.2 VIT图像计算公式

E代表编码,ppc代表输入一个patch(图像分割块),D是映射(全连接层),即将256映射为512,映射后变为ppd
Epos位置编码最后一个维度D必须和E一样,N+1代表多了一个0*(N代表图像分割的patch块数),表示一个分类token。
第一个E表示对D做一个映射。
z0表示将位置编码信息加到每一个数据上。
MSA-多头注意力机制,LN-归一化,加上Zt-1代表加上残差连接。在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3 TNT

在这里插入图片描述
在这里插入图片描述↑内部的transformer将每个分割过的图像patch再次分割为多个patch。外部的transformer和一般情况下做的事情一样。
在这里插入图片描述
↑TNT内部序列重组构建
在这里插入图片描述

VIT总结:

图像进行position_enbeddings,只需要进行一次卷积即可。
在这里插入图片描述

4.swin Transformer

传统transformer将图像作为一个个的patch,每个patch作为序列的一小部分,传统的尽可能将patch分的细一点,但此时需要构建更长的序列,则token就越多。而transformer需要将其中的一个token和其他token做计算,此时计算量就大。如第一层输入400个token,则下一层还是400个。传统的transformer输入的向量维度和输出的一样。
而swin transformer第一层400个,第二层进行合并变为200个,后续依次类推。
在这里插入图片描述
步骤:
在这里插入图片描述
在这里插入图片描述

4.1 图像的初始输入在这里插入图片描述
4.2 将图像的特征图中的序列转换为多个窗口,即基于window的自注意力机制
reshape操作(5656->6477),64个窗口,每个窗口为77大小在这里插入图片描述4.3 计算自己窗口内的自注意力得分,得到权重矩阵
每个窗口由77=49个token组成,每个token是由3头注意力机制搞定,每一头搞定一个32维向量。
attention结果代表意思:64为64个窗口,3代表3种不同的权重项,49,49表示每个7
7(4949即49个token,其他48+自己的权[1]=49得分)的窗口中自己的自注意力得分。在这里插入图片描述在这里插入图片描述
4.4窗口重构,将窗口还原为输入时的特征
新的特征(64,49,96)分别代表64个窗口,每个窗口有7
7=49个点,每个点输入为96维向量,此时的96维向量还表示了与窗口内其他token点的关系。
每个窗口的点对应96个向量。此时96个向量是做了attention后表达的特征含义。在这里插入图片描述
4.5 计算窗口内部特征后,进行窗口滑动再次计算注意力特征 在这里插入图片描述 4.6 窗口偏移的问题及解决在这里插入图片描述
原本是4大块ABC和空格部分,划分后为0-8九个位置。但是计算还按照四个窗口计算,即4还当做其中一个,然后5和3当做一块,1和7当做一块,0、2、6、8四个当做一块,等于还是四块。
然后四块内计算块内的自注意力,没有意义的地方进行mask补0,不影响计算。在这里插入图片描述在这里插入图片描述
W-MSA和SW-MSA输入是一样的,都是4.3中(3,64,3,49,32),含义也是一样的。只是SW-MSA对窗口做了偏移,引入了masked,然后其他和W-MSA一样。在这里插入图片描述> 在这里插入图片描述 4.7 下采样
间隔取图像块。在这里插入图片描述在这里插入图片描述
第一次是64个窗口,第二次就变为16个窗口,第三次变为4个窗口,第四次变为1个窗口,选择7是因为7算的开。最终得到特征图在这里插入图片描述
4.8 代码总结
图五
3136相当于3136个特征点,每一个点都是由96维向量组成的在这里插入图片描述
图6
在这里插入图片描述
图七
在这里插入图片描述

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

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

相关文章

K8S容器OOM killed排查

背景 数据服务平台南海容器k8s设置的内存上限2GB,多次容器被OOM killed。 启动命令 java -XX:MaxRAMPercentage70.0 -XX:HeapDumpOnOutOfMemoryError -XX:HeapDumpPath/apps/logs/ ***.jar排查过程 1 当收到实例内存超过95%告警时,把jvm进程堆dump下…

Data Rescue Professional for Mac:专业的数据恢复工具

在数字化时代,我们的生活和工作离不开电脑和存储设备。但是,意外情况时常发生,例如误删除文件、格式化硬盘、病毒攻击等,这些都可能导致重要的数据丢失。面对数据丢失,我们迫切需要一款可靠的数据恢复工具。今天&#…

YOLOv8目标检测实战:TensorRT加速部署(视频教程)

课程链接:https://edu.csdn.net/course/detail/38956 PyTorch版的YOLOv8是先进的高性能实时目标检测方法。 TensorRT是针对英伟达GPU的加速工具。 本课程讲述如何使用TensorRT对YOLOv8目标检测进行加速和部署。 •采用改进后的tensorrtx/yolov8的代码,…

全民健康生活方式行动日,天猫健康联合三诺生物推出“15天持续测糖计划”

糖尿病是全球高发慢性病中患病人数增长最快的疾病,是导致心血管疾病、失明、肾衰竭以及截肢等重大疾病的主要病因之一。目前中国有近1.4亿成人糖尿病患者,科学的血糖监测和健康管理对于糖尿病患者来说至关重要。 在9月1日全民健康生活方式行动日前夕&am…

Homebrew下载安装及使用教程

Homebrew是什么? 简单来说,就是用命令行的形式去管理mac系统的包或软件。 安装命令 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"国内请使用镜像源进行下载 执行上述命令后会要求输入…

工具分享 | PDF文档解析工具PyMuPDF

1 需求描述 最近工作需要从PDF文档中按照章节解析出对应的文本和图片(后续可能还会有表格),经过调研,找到了一个功能强大的解析工具MuPDF,对应的Python包是PyMuPDF。本篇博客记录使用它来实现具体功能。 官方文档:https://pymupd…

JavaScript 生成 16: 9 宽高比

这篇文章只是对 for 循环一个简单应用,没有什么知识含量。 可以跳过这篇文章。 只是我用来保存一下我的代码,保存在本地我嫌碍眼,总想把他删了。 正文部分 公式:其中 width 表示宽度,height 表示高度 16 9 w i d t…

sql各种注入案例

目录 1.报错注入七大常用函数 1)ST_LatFromGeoHash (mysql>5.7.x) 2)ST_LongFromGeoHash &#xff08;mysql>5.7.x&#xff09; 3)GTID (MySQL > 5.6.X - 显错<200) 3.1 GTID 3.2 函数详解 3.3 注入过程( payload ) 4)ST_Pointfromgeohash (mysql>5.…

【python使用 Pillow 库】缩小|放大图片

当我们处理图像时&#xff0c;有时候需要调整图像的大小以适应特定的需求。本文将介绍如何使用 Python 的 PIL 库&#xff08;Pillow&#xff09;来调整图像的大小&#xff0c;并保存调整后的图像。 环境准备 在开始之前&#xff0c;我们需要安装 Pillow 库。可以使用以下命令…

面试官问我MySQL和MariaDB的联系和区别,这我能不知道?

&#x1f3c6;作者简介&#xff0c;黑夜开发者&#xff0c;CSDN领军人物&#xff0c;全栈领域优质创作者✌&#xff0c;CSDN博客专家&#xff0c;阿里云社区专家博主&#xff0c;2023年6月CSDN上海赛道top4。 &#x1f3c6;数年电商行业从业经验&#xff0c;历任核心研发工程师…

MQTT,如何在SpringBoot中使用MQTT实现消息的订阅和发布

一、MQTT介绍 1.1 什么是MQTT&#xff1f; MQTT&#xff08;Message Queuing Telemetry Transport&#xff0c;消息队列遥测传输协议&#xff09;&#xff0c;是一种基于发布/订阅&#xff08;publish/subscribe&#xff09;模式的“轻量级”通讯协议&#xff0c;该协议构建于…

广场舞音乐制作软件,FL Studio怎么做广场舞音乐

广场舞一直以来都是许多人日常的消遣方式之一&#xff0c;富有节奏感的音乐能够让人沉浸其中&#xff0c;这也说明了音乐的重要性。那么如果我们想自己制作一个广场舞风格的音乐&#xff0c;需要具备哪些条件呢&#xff1f;今天我们就来说一说广场舞音乐制作软件&#xff0c;FL…

大数据专业毕业能从事什么工作

大数据从业领域很宽广&#xff0c;不管是科技领域还是食品产业&#xff0c;零售业等都是需要大数据人才进行大数据的处理&#xff0c;以提供更好的用户体验&#xff0c;优化库存降低成本预测需求。 大数据开发做什么&#xff1f; 大数据开发分两类&#xff0c;编写Hadoop、Spa…

无涯教程-JavaScript - POISSON函数

POISSON函数取代了Excel 2010中的POISSON.DIST函数。 描述 该函数返回泊松分布。泊松分布的常见应用是预测特定时间的事件数。 语法 POISSON(x,mean,cumulative)争论 Argument描述Required/OptionalXThe number of events.RequiredMeanThe expected numeric value.Require…

K8s:一文认知 CRI,OCI,容器运行时,Pod 之间的关系

写在前面 博文内容整体结构为结合 华为云云原生课程 整理而来,部分内容做了补充课程是免费的&#xff0c;有华为云账户就可以看&#xff0c;适合理论认知&#xff0c;感觉很不错。有需要的小伙伴可以看看&#xff0c;链接在文末理解不足小伙伴帮忙指正 对每个人而言&#xff0c…

Linux之web服务器

目录 www简介 常见Web服务程序介绍 服务器主机 主要数据 浏览器 网址及HTTP简介 URL http请求方法 状态码 MIME&#xff08;Multipurpose Internet Mail Extension&#xff09; www服务器的类型 静态网站 动态网站 Apache服务的搭建 Apache的安装 准备工作 htt…

在支付宝中 下载社会保险参保证明 方法

这里 我们打开支付宝 选择 市明中心 然后选择 社保 这里 在社保查询下 找到 个人社会参保证明查询 这里 选择好自己的省市区 文件就会出现在下面了 我们直接点击这个文件进入 下面就会有下载的选项了

深度解析 PostgreSQL Protocol v3.0(一)

引言 PostgreSQL 使用基于消息的协议在前端&#xff08;也可以称为客户端&#xff09;和后端&#xff08;也可以称为服务器&#xff09;之间进行通信。该协议通过 TCP/IP 和 Unix 域套接字支持。 《深度解析 PostgreSQL Protocol v3.0》系列技术贴&#xff0c;将带大家深度了…

IO面试题整理

1.同步/异步&#xff0c;阻塞/非阻塞是一样的概念吗&#xff1f; 不一样。 阻塞/非阻塞说的是调用者。调用者需要等待就是阻塞&#xff0c;不需要等待就是非阻塞。 同步/异步说的是被调者通知调用者的方式。被调者执行完成后再恢复调用者是同步。被调者立即告诉调用者收到求…

无涯教程-Android - Spinner函数

Spinner允许您从下拉菜单中选择一个项目 例如。使用Gmail应用程序时,将显示如下所示的下拉菜单,您需要从下拉菜单中选择一个项目。 Spinner Example 示例 本示例演示计算机的类别,您需要从类别中选择一个类别。 以下是修改后的主要Activity文件src/com.example.spinner/Andr…