整体架构

整个“金字塔”架构分为4个stage,每个stage内的基础结构是相似的,即:

  1. Patch Embedding:目的在于将信息分块,降低单张图的图片大小,但会增加数据的深度
  2. Transformer Encoder:目的在于计算图片的attention value,由于深度变大了,计算复杂度会变大,所以在这里作者使用了Special Reduction来减小计算复杂度

具体模块

Patch Embedding

Patch Embedding部分与ViT中对与图片的分块操作是一样的,即:

  1. 将原图切成总数为 p i × p i p_i\times p_i pi×pi的patches

具体操作:
使用卷积操作, k e r n a l _ s i z e = H p i , s t r i d e = H p i \mathrm{kernal\_size}=\frac{H}{p_i},\mathrm{stride}=\frac{H}{p_i} kernal_size=piHstride=piH

  1. 将每个patch内的数据拉平,然后进行LayerNorm,此时每个patch内的数据大小为 H i − 1 W i − 1 p i 2 × C i \frac{H_{i-1}W_{i-1}}{p_i^2}\times C_i pi2Hi1Wi1×Ci

Transformer Encoder

ViT中的Attention计算过程可以用如下公式表示:

Q = W q x + b q K = W k x + b k V = W v x + b v A t t e n t i o n ( Q , K , V ) = S o f t m a x ( Q K T d h e a d ) V Q=W_qx+b_q\quad K=W_kx+b_k\quad V=W_vx+b_v\\ \mathrm{Attention}(Q,K,V)=\mathrm{Softmax}(\frac{QK^T}{\sqrt{d_{head}}})V Q=Wqx+bqK=Wkx+bkV=Wvx+bvAttention(Q,K,V)=Softmax(dhead

QKT)V
假设输入( x x x)的大小为 H W × C HW\times C HW×C,则 Q . s h a p e = K . s h a p e = V . s h a p e = H W × C ′ Q.\mathrm{shape}=K.\mathrm{shape}=V.\mathrm{shape}=HW\times C' Q.shape=K.shape=V.shape=HW×C

PVT中的Attention计算过程可以用如下公式表示:

S R A ( Q , K , V ) = C o n c a t ( h e a d 0 , . . . h e a d N i ) W o , ( h e a d j = A t t e n t i o n ( Q W j Q , S R ( K ) W j K , S R ( V ) W j V ) ) S R ( x ) = N o r m ( R e s h a p e ( x , R i ) W S ) A t t e n t i o n ( Q , K , V ) = S o f t m a x ( Q K T d h e a d ) V \mathrm{SRA}(Q,K,V)=\mathrm{Concat}(head_0,...head_{N_i})W^o,\\ (head_j=\mathrm{Attention}(QW_j^Q,\mathrm{SR}(K)W_j^K,\mathrm{SR}(V)W_j^V))\\ \mathrm{SR}(x)=\mathrm{Norm(Reshape}(x,R^i)W^S)\\ \mathrm{Attention}(Q,K,V)=\mathrm{Softmax}(\frac{QK^T}{\sqrt{d_{head}}})V SRA(Q,K,V)=Concat(head0,...headNi)Wo,(headj=Attention(QWjQ,SR(K)WjK,SR(V)WjV))SR(x)=Norm(Reshape(x,Ri)WS)Attention(Q,K,V)=Softmax(dhead

QKT)V
假设输入( x x x)的大小为 H W × C HW\times C HW×C,则 Q . s h a p e = H W × C ′ , K . s h a p e = V . s h a p e = H W R i 2 × C ′ Q.\mathrm{shape}=HW\times C',K.\mathrm{shape}=V.\mathrm{shape}=\frac{HW}{R_i^2}\times C' Q.shape=HW×CK.shape=V.shape=Ri2HW×C,可以看出,使用这个方法之后,最终得到的结果的维度不变,但计算Attention的值时,参数的数量减少了很多

代码链接

https://github.com/whai362/PVT

PVT(Pyramid Vision Transformer)算法整理相关推荐

  1. PVT(Pyramid Vision Transformer)学习记录

    引言与启发 自从ViT之后,关于vision transformer的研究呈井喷式爆发,从思路上分主要沿着两大个方向,一是提升ViT在图像分类的效果:二就是将ViT应用在其它图像任务中,比如分割和检测 ...

  2. Pyramid Vision Transformer(PVT): 纯Transformer设计,用于密集预测的通用backbone

    论文地址:https://arxiv.org/pdf/2102.12122.pdf 官方代码:https://github.com/whai362/PVT 目录 0.摘要 1.引言 2.相关工作 2. ...

  3. 论文:Pyramid Vision Transformer

    Pyramid Vision Transformer: A Versatile Backbone for Dense Prediction without Convolutions 金字塔视觉Tran ...

  4. 论文精读:PVT v2: Improved Baselines with Pyramid Vision Transformer

    论文地址:https://arxiv.org/abs/2106.13797 源码地址:https://github.com/whai362/PVT Abstract 在这项工作中,作者改进了PVT v ...

  5. 大白话Pyramid Vision Transformer

    本文转载自知乎,已获作者授权转载. 链接:https://zhuanlan.zhihu.com/p/353222035 TL;DR 这个工作把金字塔结构引入到Transformer[1]中,使得它可以 ...

  6. 基于Pyramid Vision Transformer(PVT-v2)实现奥特曼识别

    前言 大家好,我是阿光. 本专栏整理了<PyTorch深度学习项目实战100例>,内包含了各种不同的深度学习项目,包含项目原理以及源码,每一个项目实例都附带有完整的代码+数据集. 正在更新 ...

  7. 【深度学习】(ICCV-2021)PVT-金字塔 Vision Transformer及PVT_V2

    目录 0. 详情 1. 简述 2.主要工作 2.1 ViT遗留的问题 2.2 引入金字塔结构 3.PVT的设计方案 3.1 Patch embedding 代码 3.2position embeddi ...

  8. Vision Transformer发展现状

    --------------- 声明 CSDN:越来越胖的GuanRunwei 知乎:无名之辈 / IDPT集萃感知 皆为本人 --------------- 背景 自 DETR 与 Vision T ...

  9. 【读点论文】A Survey on Vision Transformer,2022年华为诺亚最新综述研究,从发展到任务,整体到局部。ViT有研究价值在于有很多问题还没有解决,真理是阶段性的产物

    A Survey on Vision Transformer Abstract transformer最早应用于自然语言处理领域,是一种主要基于自注意机制的深度神经网络.由于其强大的表示能力,研究人员 ...

  10. VIT Adapter【Vision Transformer Adapter for Dense Predictions】论文笔记

    Vision Transformer Adapter for Dense Predictions 论文地址:2205.08534.pdf (arxiv.org) 代码地址:https://github ...

最新文章

  1. Connection cannot be null when 'hibernate.dialect'
  2. 嵌入式四大通信接口的解释
  3. vue.config.js配置不生效_华为QoS流策略配置教程
  4. 哎..前段时间的偷懒..造成今天的被动局面...要检讨深刻教训.
  5. 计算机虚拟化技术论文,【计算机网络论文】虚拟技术计算机网络论文(共1775字)...
  6. Qt for Android 动态申请权限
  7. [转]Xvid参数详解
  8. TensorFlow 2.0 - tf.data.Dataset 数据预处理 猫狗分类
  9. C++ 之 转义字符
  10. elxel表格纸张尺寸_一本书的诞生:纸张知识
  11. jemter的竞品分析
  12. 台达杯自动化大赛设计方案
  13. iOS 不通过改变url 与web JS 交互
  14. 循序渐进的手动安装k8s笔记-1
  15. 解决fake_useragent报错
  16. 人脸识别5.2- insightface人脸3d关键点检测,人脸68个特征点、106个特征点;人脸姿态角Pitch、Yaw、Roll、
  17. 如何释放计算机的ip地址,电脑执行释放DNS和更新IP的命令是什么?怎么执行
  18. Difference between Static video and Single image ?静态视频和单张图像的区别
  19. python中pip安装报错的一些总结
  20. 深圳市自助图书馆详细分布地址

热门文章

  1. reeds_sheep运动规划算法Python源码分析
  2. 图像去雨技术简单介绍
  3. 第1章:MATLAB的介绍和安装(MATLAB教程新手入门篇)
  4. ts30:基于Keras的深度神经网络应用
  5. 智能报警系统 开拓“零误报”时代
  6. mac m1(arm)安装brew(Homebrew)
  7. 读产品研发管理系列之《培思的力量》
  8. 利用python爬取苏州近30天天气_Python爬虫实战:爬取历史天气数据
  9. 1.ensp给计算机和路由器配置IP地址,更改路由器的时钟和名称
  10. 特斯拉下调Model S和Model X起售价 最高下调3000美元