transformer概述和swin-transformer详解

这篇具有很好参考价值的文章主要介绍了transformer概述和swin-transformer详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1.transformer架构

1.1输入部分实现

1.2编码器部分实现

1.2.1掩码张量

1.2.2注意力机制

1.2.3多头注意力机制

1.2.4前馈全连接层

1.2.5规范化层

1.2.6子层连接层

1.2.7编码器层

1.2.8编码器

1.3解码器部分实现

1.3.1解码器层

1.3.2解码器

1.4输出部分实现

2.swin-transformer


1.transformer架构

transformer的整体网络架构如下:

swin transformer和transformer,机器学习之——tensorflow+pytorch,transformer,深度学习,人工智能

其中具体分为:输入,输出,编码器,解码器

输入:源文本嵌入层+位置编码

           目标文本嵌入层+位置编码

输出:线形层+softmax激活函数

编码器:由N个编码器构成

              每个编码器由个子层连接

              第一个子层由多头注意力层+规范化层+残差层

              第二个子层由前馈全连接子层+规范化层+残差层

解码器:由N个解码器构成

              每个编码器由个子层连接

              第一个子层由多头自注意力层+规范化层+残差层

              第二个子层由多头注意力层+规范化层+残差层

              第三个子层由前馈全连接子层+规范化层+残差层

1.1输入部分实现

作用

文本嵌入层:是为了将文本中词汇的数字表示为向量表示,以此得到高维空间中词汇间的关系。

位置编码器:由于词汇直接没有位置信息,因此要在Embedding(文本嵌入层)之后加入位置编码,将词汇处于不同位置可能产生的语义信息加入到词嵌入张量(Embedding层产生的张量)中,以弥补位置信息缺少。

嵌入层代码分析

swin transformer和transformer,机器学习之——tensorflow+pytorch,transformer,深度学习,人工智能

 其中embedding = nn.Embedding(10,3)代表把长度为10的单词嵌入到大小为3的维度中。

位置编码器代码分析

swin transformer和transformer,机器学习之——tensorflow+pytorch,transformer,深度学习,人工智能

1.2编码器部分实现

每个编码器根据输入向目标方向(比如中翻英,就是中作为输入,编码器根据这个输入得到特征)进行特征提取

1.2.1掩码张量

是什么?

掩:代表遮挡的意思。码:张量中的数值,尺寸不定内容为0或1。掩码就是有些位置被遮挡

作用?

加入掩码是为了防止未来信息被提前得到

代码分析:

swin transformer和transformer,机器学习之——tensorflow+pytorch,transformer,深度学习,人工智能

经过该函数生成一个最后两维是1方阵的下三角阵。

1.2.2注意力机制

什么是注意力?

快速关注某一个事物,是因为大脑能集中在关键部分,而不是全部看完再做结论。这种集中在关键部分的能力就叫注意力。

注意力计算方法?

给定Q(query),K(key),V(value)三个参数,Q在K和V的作用下得到注意力结果。例如下面这个公式

swin transformer和transformer,机器学习之——tensorflow+pytorch,transformer,深度学习,人工智能

 Q,K,V分别是什么意思?

举个例子。给你一段话(Q),然后给你一些提示答案(K),你就可以得到你的答案(V),这里存在一些情况,比如你很笨,给你了K之后,你的答案还是K,因为你笨所以你根据提示之后还是只有提示。但是随着你多学一会儿,你可以对Q提取信息了,然后你的V也发生改变。

自注意力机制?

Q和K和V都是一样的,你有了V,现在给你K,你就相当于从文本Q根据文本本身K提取特征V。

注意力网络结构图:

swin transformer和transformer,机器学习之——tensorflow+pytorch,transformer,深度学习,人工智能

 注意力机制代码:

swin transformer和transformer,机器学习之——tensorflow+pytorch,transformer,深度学习,人工智能

1.2.3多头注意力机制

是什么?

多头指的是把词嵌入向量进行均分之后送到多个注意力机制模块中进行计算。

多头注意力结构图:

swin transformer和transformer,机器学习之——tensorflow+pytorch,transformer,深度学习,人工智能

 QKV分别经过线性变换(三个方阵),然后把词嵌入向量最后一维(d_modle)进行分割,每个注意力模块获得其中一部分。

作用?

让每个注意力模块优化每个词汇的不同特征部分,减小误差

代码分析:

swin transformer和transformer,机器学习之——tensorflow+pytorch,transformer,深度学习,人工智能

1.2.4前馈全连接层

是什么?

具有两次线性层的全连接网络,且输入输出的形状大小不变

作用?

考虑注意力对复杂模型拟合不够,增加两层网络提高能力

代码分析:

swin transformer和transformer,机器学习之——tensorflow+pytorch,transformer,深度学习,人工智能

1.2.5规范化层

作用?

网络层数过深,需要规范化进行优化

代码分析:

根据均值,方差进行优化

swin transformer和transformer,机器学习之——tensorflow+pytorch,transformer,深度学习,人工智能

1.2.6子层连接层

是什么?

子层就是说一个输入x,经过处理之后得到y,再把x和y进行contact。这一个整体叫子层连接。其中编码器包括两个子层连接。

swin transformer和transformer,机器学习之——tensorflow+pytorch,transformer,深度学习,人工智能

 文章来源地址https://www.toymoban.com/news/detail-775633.html

代码分析:

swin transformer和transformer,机器学习之——tensorflow+pytorch,transformer,深度学习,人工智能

1.2.7编码器层

作用?

对输入特征进行特征提取,也叫编码过程

代码分析:

swin transformer和transformer,机器学习之——tensorflow+pytorch,transformer,深度学习,人工智能

1.2.8编码器

作用?

对编码器层复制N份构成编码器

代码分析:

swin transformer和transformer,机器学习之——tensorflow+pytorch,transformer,深度学习,人工智能

1.3解码器部分实现

1.3.1解码器层

作用?

每个解码器根据输入向目标方向(比如中翻英,就是中已经特征提取的东西作为输入,解码器根据这个输入得到英)进行特征提取

代码分析:

swin transformer和transformer,机器学习之——tensorflow+pytorch,transformer,深度学习,人工智能

1.3.2解码器

作用?

根据编码器结果以及自身上一次预测结果对进行特征提取,输出形状没变(2x4x512)

代码分析:

swin transformer和transformer,机器学习之——tensorflow+pytorch,transformer,深度学习,人工智能

1.4输出部分实现

代码分析:

swin transformer和transformer,机器学习之——tensorflow+pytorch,transformer,深度学习,人工智能

2.swin-transformer

 解决了什么问题?

1.图像中像素点过多,需要很长的序列

2.利用分层和窗口替代长序列。

7*7=49个patch

网络结构

swin transformer和transformer,机器学习之——tensorflow+pytorch,transformer,深度学习,人工智能

Parition

swin transformer和transformer,机器学习之——tensorflow+pytorch,transformer,深度学习,人工智能

Embedding 

swin transformer和transformer,机器学习之——tensorflow+pytorch,transformer,深度学习,人工智能

swin模块

swin transformer和transformer,机器学习之——tensorflow+pytorch,transformer,深度学习,人工智能

 W-MSA

swin transformer和transformer,机器学习之——tensorflow+pytorch,transformer,深度学习,人工智能

 windo_reverse

swin transformer和transformer,机器学习之——tensorflow+pytorch,transformer,深度学习,人工智能

 SW-MSA

为什么?

原window是算自己内部,和外界没有关联。因此需要窗口滑动

 

到了这里,关于transformer概述和swin-transformer详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • timm使用swin-transformer

    报错的内容如下 解决办法 去swin官网下载对应的 swin_base_patch4_window7_224.pth (所有模型我都存自己百度网盘了)文件 然后根据提示 重命名为 swin_base_patch4_window7_224_22kto1k.pth 再将该文件移动到 /root/.cache/torch/hub/checkpoints/ 该目录下 这样timm就可以爽歪歪的用了 官网:https://github

    2024年02月16日
    浏览(40)
  • 17.基干模型Swin-Transformer解读

    欢迎访问个人网络日志🌹🌹知行空间🌹🌹 Swin-Transformer是 2021 年 03 月微软亚洲研究院提交的论文中提出的,比 ViT 晚了半年左右,相对于 ViT 而言, Swin-Transformer 的改进,使 transformer 能作为新的视觉任务 backbone ,用于分类分割和检测,姿态估计等任务。 论文:https://arxiv

    2024年02月06日
    浏览(40)
  • Swin-Transformer训练自己的数据集

    Swin-Transformer精度较高,但其对显卡要求同样较高,我的是RTX2070,8G显存,当设置crop size为512 512时,batchsize设置为2,才不会报OOM。当crop size为1024 1024时,如果类别较少,还可以跑通,类别较多则会报错。 首先下载Swin-Transformer的源码,在PyCharm中创建针对Swin-Transformer算法的虚拟

    2024年02月05日
    浏览(37)
  • Swin-transformer论文阅读笔记(Swin Transformer: Hierarchical Vision Transformer using Shifted Windows)

    论文标题:Swin Transformer: Hierarchical Vision Transformer using Shifted Windows 论文作者:Ze Liu, Yutong Lin, Yue Cao, Han Hu, Yixuan Wei, Zheng Zhang, Stephen Lin, Baining Guo 论文来源:ICCV 2021,Paper 代码来源:Code 目录 1. 背景介绍 2. 研究现状 CNN及其变体 基于自注意的骨干架构 自注意/Transformer来补充CN

    2024年02月07日
    浏览(46)
  • Swin-Transformer 实战代码与讲解(快速上手)

    最近在学习深度学习和机器学习的相关知识,在这里记录一下学习的模型和个人的一些感悟,文章包括了模型的讲解和项目源码。由于自身水平原因,总体会比较偏白话,适合小白,如果有出错的地方请大家指正。 博客讲解:https://blog.csdn.net/qq_37541097/article/details/121119988 B站

    2024年02月14日
    浏览(36)
  • 李沐论文精读系列二:Vision Transformer、MAE、Swin-Transformer

    传送门: 李沐论文精读系列一: ResNet、Transformer、GAN、BERT 李沐论文精读系列三:MoCo、对比学习综述(MoCov1/v2/v3、SimCLR v1/v2、DINO等) 李沐论文精读系列四:CLIP和改进工作串讲(LSeg、GroupViT、VLiD、 GLIPv1、 GLIPv2、CLIPasso) 论文名称: An Image Is Worth 16x16 Words: Transformers For Imag

    2024年01月17日
    浏览(43)
  • 在YOLOv5中添加Swin-Transformer模块

    前段时间整理了一个可以添加SwinTransformer Block的YOLOv5代码仓库。不需要任何其他的库包,可以运行YOLOv5程序的环境即可以正常运行代码。 分别进行了SwinTransformer Block、Patch Merging、Patch Embed阶段的代码整理,以使得这些模块可以适配于u版YOLOv5的模型构建代码。 和YOLOv5一样,通

    2024年02月04日
    浏览(58)
  • 深度学习网络模型————Swin-Transformer详细讲解与代码实现

    论文名称 :Swin Transformer: Hierarchical Vision Transformer using Shifted Windows 原论文地址 : https://arxiv.org/abs/2103.14030 官方开源代码地址 :https://github.com/microsoft/Swin-Transformer

    2024年02月14日
    浏览(35)
  • 图片分类网络ViT、MobileViT、Swin-Transformer、MobileNetV3、ConvNeXt、EfficientNetV2

    参考我的另一篇博文《李沐论文精读系列二:Vision Transformer、MAE、Swin-Transformer》 参考我的另一篇博文《李沐论文精读系列二:Vision Transformer、MAE、Swin-Transformer》 论文名称:MobileViT: Light-Weight, General-Purpose, and Mobile-Friendly Vision Transformer 参考小绿豆的博文《MobileViT模型简介》

    2024年02月04日
    浏览(56)
  • Swin Transformer详解

    原创:余晓龙 “Swin Transformer: Hierarchical Vision Transformer using Shifted Window”是微软亚洲研究院(MSRA)发表在arXiv上的论文,文中提出了一种新型的Transformer架构,也就是Swin Transformer。本文旨在对Swin Transformer架构进行详细解析。 整体的网络架构采取层次化的设计,共包含4个stag

    2024年02月06日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包