![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Transformer
文章平均质量分 67
Transformer相关论文
Rainylt
这个作者很懒,什么都没留下…
展开
-
Classifier guidance与Classifier free diffusion的简单理解
参考:Classifier Guidance 和 Classifier Free Guidance,一堆公式不如两行代码 - 蓟梗的文章 - 知乎Classifier Guidance和Classifier-free Guidance 总结 - 走遍山水路的文章 - 知乎场景:首先,有一个训好的diffusion模型,可以从高斯分布的噪声生成图片。现在,你希望对生成的图片加以控制,让它生成你想要的图片。原创 2024-05-06 14:35:26 · 1501 阅读 · 1 评论 -
DN-DETR
主要是引入了去噪(class、bbox重建)的辅助任务在Decoder部分,除了anchor的embedding,还加入了带噪声的bbox和class,比如gt_bbox是(x, y, h, w),加噪声可以有很多种方式,比如变成(x+Δx,y+Δy,h+Δh,w+Δw)(x+\Delta{x}, y+\Delta{y}, h+\Delta{h}, w+\Delta{w})(x+Δx,y+Δy,h+Δh,w+Δw),label加噪声的话就是随机变成别的class label,要求Decoder输出对原创 2022-05-16 16:59:25 · 1160 阅读 · 0 评论 -
DAB-DETR深入理解
文章链接:https://arxiv.org/abs/2201.12329最大的贡献是把DETR的Object Query定义为可学习的AnchorAnchor-based DETR来临了(还有点争议,说是Anchor-based,这Anchor又不是预定义的,说是Anchor-free,这Anchor也不是由image feature end-to-end预测来的)首先是一个实验,为啥DETR收敛这么慢?首先排除backbone的原因,因为是预训练好的,那就只能是Decoder的原因。其中.原创 2022-05-15 23:57:20 · 5520 阅读 · 3 评论 -
矩阵乘法的计算复杂度
结论:A∗B=(i,m)∗(m,j)A*B=(i, m)*(m, j)A∗B=(i,m)∗(m,j)的计算复杂度为O(i∗j∗m)O(i*j*m)O(i∗j∗m)怎么来的:输出矩阵C为(i,j)(i, j)(i,j),遍历输出矩阵,C矩阵中的每个元素由A,B矩阵中对应的m对数字相乘相加而来,遍历m对数做相乘相加的复杂度为O(m)O(m)O(m),所以总共三轮循环,复杂度为O(i∗j∗m)O(i*j*m)O(i∗j∗m)实际实现:a = [[1, 2, 3], [4, 5, 6]]b原创 2022-05-01 19:54:56 · 2559 阅读 · 0 评论 -
MLP三部曲——其二:gMLP
gMLP论文链接:https://arxiv.org/pdf/2105.08050.pdf与其说是去掉了self-attn,不如说是另一种形式的self-attn我们先回一下self-attn是啥?在Transformer里面,Q*K后得到Attn矩阵,再乘上V,相当于将所有token混合,每个token都由所有token线性表出(突然感觉大学线代里学到的这个词用在这里十分合理),其中,线性表出的矩阵就是Attn矩阵。所以self-attn实际上就是attn矩阵*V,这个attn矩阵可以由Q*原创 2022-04-30 23:59:53 · 2506 阅读 · 1 评论 -
MLP三部曲(MLP-Mixer -> gMLP -> MAXIM)——其一
其一:MLP-Mixer参考一文教你彻底理解Google MLP-Mixer(附代码) - 月球上的人的文章 - 知乎https://zhuanlan.zhihu.com/p/372692759论文链接:https://arxiv.org/abs/2105.01601先看总体结构:乍一看和Vit特别像,先把图片分Patch,然后拉平过全连接变成Embedding。...原创 2022-04-30 00:11:46 · 2625 阅读 · 0 评论 -
Deformable DETR——非全局self-attention(顺便补充transformer细节)
特色:1.attention矩阵由query直接过全连接层得到,而不进行Q*K2.attention矩阵乘value时,并不使用所有value,而是每个query(对应attention矩阵的每一行)对应k个value,因此,O(N^2C)变成了O(NKC),减少了计算量3.如何确定每个query对应哪些value?——由query过全连接层得到offset矩阵,通过offset得到每个query对应的value的位置注意:每个query对应k个value,即相当于要算出Nq组offset,每组有原创 2021-09-13 15:30:17 · 904 阅读 · 0 评论 -
目前最简多模态transformer:ViLT
facebook的文章,一句话概括:图像patch和文本embedding concat在一起过transformer,做图像-文本匹配任务相比之前的多模态transformer,创新点在用Vit的patch方案作为visual embedding而不是先过CNN提取特征,或者更繁琐的用CNN+RPN+ROI提取特征。Insight:ViT初始化的transformer已经具备特征提取的功能。所以本文用的是Vi时间:结构:流程:embedding和positional encoding相加原创 2021-08-23 12:21:07 · 597 阅读 · 0 评论 -
SwinTransformer
解决Vit的计算复杂度问题:传统的Vit:假设图像切成4x4=16的patch,每个patch为16x16=2^8大小,则算self attention时,复杂度为n2∗d=(24)2∗28=216n^2*d=(2^4)^2*2^8=2^{16}n2∗d=(24)2∗28=216本来Vit可以通过减少patch数量的方式来减少计算量,但ViT的patch内部是没有做attention的,patch越大,没有做信息交互的部分就越大。而SwinTransformer做了几点改善:(1)local s原创 2021-09-03 15:53:47 · 972 阅读 · 0 评论