Transformer
文章平均质量分 72
马鹏森
这个作者很懒,什么都没留下…
展开
-
vision transformer(ViT)代码中常见的张量代表什么意思?
本文为汇总文,汇总ViT中常见的维度所代表的含义:原创 2024-04-28 16:01:55 · 130 阅读 · 0 评论 -
Transformer位置编码(Position Embedding)理解
本文主要介绍4种位置编码,分别是NLP发源的transformer、ViT、Sw-Transformer、MAE的Position Embedding。原创 2024-03-19 19:51:29 · 2383 阅读 · 0 评论 -
ViT如何支持变长序列(patches)输入?MAE推理过程
当增加输入图像的分辨率时,例如DeiT 从 224 到 384,一般来说会保持 patch size(例如9),因此 patch 的数量 N 会发生了变化。那么视觉transformer是如何处理变长序列输入的?原创 2024-03-17 10:07:31 · 1162 阅读 · 0 评论 -
NLP Transformer的Decoder的输入输出都是什么?每个部分都是什么? NLP中的encoder和decoder的输入是什么?
要弄清楚Decoder的输入输出,关键在于图示三个箭头的位置:因为输入(“我爱中国”)在Encoder中进行了编码,这里我们具体讨论Decoder的操作,也就是如何得到输出(“L Love China”)的过程。原创 2023-07-11 14:09:28 · 6949 阅读 · 0 评论 -
注意力机制中Q和K相乘的意义是什么?为什么Q和K相乘就可以得到它们之间的相似性/权重矩阵呢?
常用的归一化方法包括。原创 2023-04-14 14:34:22 · 2384 阅读 · 0 评论 -
MUSIQ: Multi-scale Image Quality Transformer【图像质量评估】
MUSIQ: Multi-scale Image Quality Transformer原创 2022-10-23 19:28:48 · 2827 阅读 · 4 评论 -
一文细数Vision transformer家族成员
可以看作是vision transformer的idea集,查漏补缺使用。需要精读的文章前面加了*号,均附有文章链接及代码链接。下面这个链接基本上有所有的ViT的论文地址:https://github.com/dk-liang/Awesome-Visual-TransformerImage ClassificationUniform-scale*ViTpaper:https://arxiv.org/abs/2010.11929code:https://github.com/go.原创 2022-03-18 09:40:37 · 2170 阅读 · 1 评论 -
图解Transformer
4.1 计算Query 向量,Key 向量,Value 向量下面我们先看下如何使用向量来计算 Self Attention,然后再看下如何使用矩阵来实现 Self Attention。(矩阵运算的方式,使得 Self Attention 的计算能够并行化,这也是 Self Attention 最终的实现方式)。计算 Self Attention 的第 1 步是:创建Q、K、V变量,即对输入编码器的每个词向量,都创建 3 个向量,分别是:Query 向量,Key 向量,Value 向量。这 3 个向量原创 2022-01-14 16:58:50 · 4878 阅读 · 0 评论 -
多头注意力代码解读
初始化阶段,其中要注意的是hid_dim要和Q、K、V词向量的长度相等import torchfrom torch import nnclass MultiheadAttention(nn.Module): # n_heads:多头注意力的数量 # hid_dim:每个词输出的向量维度 def __init__(self, hid_dim, n_heads, dropout): super(MultiheadAttention, self).__..原创 2022-01-14 11:48:26 · 7273 阅读 · 3 评论 -
Transformer如何并行化? self-attention公式中的归一化有什么作用?
0.Transformer如何并行化的?Transformer的并行化我认为主要体现在self-attention模块,在Encoder端Transformer可以并行处理整个序列,并得到整个输入序列经过Encoder端的输出,在self-attention模块,对于某个序列,self-attention模块可以直接计算 的点乘结果,而RNN系列的模型就必须按照顺序从计算到。1.self-attention公式中的归一化有什么作用?首先说明做归一化的原因,随着 的增大,点积后...原创 2022-01-12 09:36:17 · 6926 阅读 · 0 评论 -
transformer中patch与token?
在文章以及代码中经常会出现patch与token,那么他们之间的关系到底是什么呢?token包含:class token、patch token,在NLP叫每一个单词为token,然后有一个标注句子语义的标注是CLS,在CV中就是把图像切割成不重叠的patch序列(其实就是token)通过上图我们看到,embedding后,有三个token,分别是class token,patch token,distillation token,其中 distillation token我们不需要关注,因原创 2022-01-11 21:37:52 · 20478 阅读 · 3 评论 -
精(李沐)多头注意力,代码理解
import torchfrom torch import nnfrom d2l import torch as d2lclass MultiHeadAttention(nn.Module): """多头注意力""" def __init__(self, key_size, query_size, value_size, num_hiddens, num_heads, dropout, bias=False, **kwargs): super(MultiHead..原创 2022-01-11 15:13:50 · 7277 阅读 · 0 评论 -
MetaTransformer:简单到尴尬的视觉模型
论文地址:https://arxiv.org/abs/2111.11418arxiv.org/abs/2111.11418什么才是 Transformer 及其变种成功的真正原因?作者的答案是:"MetaFormer 才是 Transformer 及其变种成功的真正原因"。1 MetaTransformer 原理分析:Transformer 做视觉取得巨大成功,视觉 Transformer 模型的基本架构是Token information mixing 模块 + Channel.原创 2021-12-20 19:25:56 · 8579 阅读 · 0 评论 -
视觉 Transformer 综述
论文题目:A Survey of Visual Transformers发表单位:中国科学院、东南大学、联想研究院、联想论文地址:https://arxiv.org/abs/2111.06091提交时间:2021年11月11日1) How Transformer Bridge The Gap Between Language and Vision: Transformer is initially designed for machine translation tasks [1].原创 2021-12-05 16:15:37 · 7753 阅读 · 0 评论 -
注意力公式步骤每一步的含义、Self-Attention自注意力机制、Vision Transformer(ViT)模块理解
超详细图解Self-Attention - 知乎Transformer - Attention is all you need - 知乎熬了一晚上,我从零实现了Transformer模型,把代码讲给你听 - 知乎原创 2021-10-15 15:14:11 · 16614 阅读 · 0 评论 -
【Transformer】TransGAN的鉴别器的理解
代码实现: def forward(self, x): x = DiffAugment(x, self.diff_aug) # 30,3,32,32 b = x.shape[0] # 30 x = self.patches(x) # 30,64,384 cls_token = self.class_embedding.expand(b, -1, -1) # 30,1,384 x = torch.cat(...原创 2021-10-06 15:52:20 · 16942 阅读 · 0 评论 -
【Transformer】CLS(classification)有什么用?
CLS]就是classification的意思,可以理解为用于下游的分类任务。一句话理解:【CSL】就是一个向量,只是不是某一个字的向量,是一个够代表整个文本的的语义特征向量,取出来就可以直接用于分类了。意思就是它是代表整个语句的标签,代表该语句是什么含义(褒贬义/正确错误....)而不是仅仅代表一个单词的含义主要用于以下两种任务:单文本分类任务:对于文本分类任务,BERT模型在文本前插入一个[CLS]符号,并将该符号对应的输出向量作为整篇文本的语义表示,用于文本分类,如下图所示。可以理解为原创 2021-10-06 09:54:13 · 30442 阅读 · 7 评论 -
【Swin Transformer Block】的整体流程如下:
根据上述代码的前向,我们可以了解到Swin Transformer Block的整体流程如下:先对特征图做norm; 通过shift_size参数决定是否需要对特征图进行shift操作; 然后将特征图进行窗口划分;计算attention,通过attn_mask来区分是Window Attention还是Shift Window Attention,用于限制attention中每个位置能看到的内容; 合并各个窗口; 如果之前做了shift操作,进行reverse shift,将之前的shif原创 2021-10-05 10:10:48 · 17843 阅读 · 0 评论 -
【Swin Transformer】W-MSA与MSA时间复杂度的理解
首先是总体的一个概括解释二:我们然后进行详细的计算过程:首先是MSA复杂度的计算:然后是W-MSA复杂度的计算:原创 2021-10-05 09:57:56 · 18770 阅读 · 2 评论 -
Transformer多头怎么理解?
可以类似于CNN中利用多个卷积核分别提取不同特征(https://mapengsen.blog.csdn.net/article/details/120512095)的作用,直观上讲,多头的注意力有助于网络捕捉到更丰富的特征/信息。论文中是这么说的:Multi-head attention allows the model to jointly attend to information from different representation subspaces at different pos原创 2021-09-27 17:02:58 · 18909 阅读 · 0 评论 -
CNN是不是一种局部self-attention?
可以这么认为。如图1,今天在使用self-attention去处理一张图片的时候,1的那个pixel产生query,其他的各个pixel产生key。在做inner-product的时候,考虑的不是一个小的范围,而是一整张图片。但是在做CNN的时候是只考虑感受野红框里面的资讯,而不是图片的全局信息。所以CNN可以看作是一种简化版本的self-attention。或者可以反过来说,self-attention是一种复杂化的CNN,在做CNN的时候是只考虑感受野红框里面的资讯,而感受野的范围和大小是由原创 2021-09-10 08:46:44 · 16486 阅读 · 0 评论 -
Vision transformer(ViT)输入后维度变化情况 + 代码实现,如何理解ViT?
https://www.bilibili.com/video/BV1Jh411Y7WQ原创 2021-09-01 09:42:32 · 16746 阅读 · 0 评论 -
transform再次理解
多头自注意力机制:这个to_Q, to_K, to_V就对应图里的linear论文中表明,将模型分为多个头,形成多个子空间,可以让模型去关注不同方面的信息。上图中Multi-Head Attention 就是将 Scaled Dot-Product Attention 过程做 H 次,再把输出合并起来。多头注意力机制的公式如下:https://zhuanlan.zhihu.com/p/109983672self-Attention 机制Attention...原创 2021-07-22 11:25:43 · 16736 阅读 · 0 评论 -
self-attention的作用,理解
Attention与Self AttentionSelf Attention也经常被称为intra Attention(内部Attention),最近一年也获得了比较广泛的使用,比如Google最新的机器翻译模型内部大量采用了Self Attention模型。在一般任务的Encoder-Decoder框架中,输入Source和输出Target内容是不一样的,比如对于英-中机器翻译来说,Source是英文句子,Target是对应的翻译出的中文句子,Attention机制发生在Target的元素Quer原创 2021-07-20 17:22:30 · 22689 阅读 · 0 评论 -
transform中的token理解(单词或词语的标记)
transformer提出了一种self-attention机制(自注意力机制【使得效果提升易于并行】),怎么理解呢?就是说之前的attention大多使用在seq2seq任务中,例如在机器翻译中,attention作用在源句子token(token就指的是单词或词语)和目标句子token之间,但是transformer的self-attention作用在源句子的token之间。https://dongzebo.com/2020/11/17/transformer%E6%98%AF%E4%BB%80原创 2021-07-18 15:34:12 · 47257 阅读 · 5 评论 -
Swin Transformer(W-MSA详解)代码+图解
2. Window & Shifted Window based Self-AttentionSwin Transformer另一个重要的改进就是window-based的self-attention layer,之前提到过,ViT的一个缺点是计算复杂度是和patch数量成平方关系的,为了减少计算量,Swin的做法是将输入图片划分成不重合的windows,然后在不同的window内进行self-attention计算。假设一个图片有的patches,每个window包含MxM个patches..原创 2021-07-13 15:19:19 · 34658 阅读 · 3 评论 -
Uformer: A General U-Shaped Transformerfor Image Restoration
(1)Encoder1.given a degraded image I ∈ R3×H×W,Uformer fifirstly applies a 3 × 3 convolutional layer with LeakyReLU to extract low-level features X0 ∈ RC×H×W,the feature maps X0 are passed through K encoder stages(Each stage contains a stack of th...原创 2021-07-09 18:58:21 · 18221 阅读 · 0 评论 -
如何理解Q、K、V,Self-attention + Multi-head Self-attention
Q、K、V生动的例子:举个简单例子说明:假设世界上所有小吃都可以被标签化,例如微辣、特辣、变态辣、微甜、有嚼劲....,总共有1000个标签,现在我想要吃的小吃是[微辣、微甜、有嚼劲],这三个单词就是我的Query 来到东门老街一共100家小吃店,每个店铺卖的东西不一样,但是肯定可以被标签化,例如第一家小吃被标签化后是[微辣、微咸],第二家小吃被标签化后是[特辣、微臭、特咸],第三家小吃被标签化后是[特辣、微甜、特咸、有嚼劲],其余店铺都可以被标签化,每个店铺的标签就是Keys,但是每家店铺由于卖原创 2021-07-05 17:16:02 · 17711 阅读 · 0 评论