当前位置: 首页 > news >正文

实验 5:ViT Swin Transformer

软件工程原理与实践(实验五)

姓名: 学号:
姓名和学号
课程 中国海洋大学 25 秋《软件工程原理与实践》
实验名称 实验 5:ViT & Swin Transformer
博客链接

一、实验内容

1.1 Vision Transformer

  1. ViT 网络详解
  2. 使用 pytorch 搭建 ViT 模型

1.2 Swin Transformer

  1. Swin-Transformer 网络结构详解
  2. 使用 Pytorch 搭建 Swin-Transformer 网络

1.3 视觉 Transformer 综述

华为韩凯:视觉 Transformer 综述

二、问题总结与体会

问题总结

在 ViT 中要降低 Attention 的计算量,有哪些方法?(提示:Swin 的 Window attention,PVT 的 attention)

  1. Swin 的 Window attention:将特征图划分为不重叠的局部窗口,将全局计算分解为在每个窗口内部计算注意力,复杂度由平方关系降低到线性关系
  2. PVT 的 attention:对 Key 和 Value 进行下采样,减少参与计算的 token 数量,降低注意力矩阵的计算规模

Swin 体现了一种什么思路?对后来工作有哪些启发?(提示:先局部再整体)

思路:分层与层次化,先局部再整体。首先构建一个层次化的结构,在浅层将图像分为较小的窗口,在小窗口内计算注意力捕获局部特征。在深层次间接实现跨窗口信息交互和全局建模。

启发:分层架构的设计是十分有效的,通过模块化将问题进行分层,形成层次化结构,从局部特征开始计算并向全局特征演变。

有些网络将 CNN 和 Transformer 结合,为什么一般把 CNN block 放在面前,Transformer block 放在后面?

  1. CNN 擅长提取低层局部特征:CNN 的卷积核具有平移不变性,能更好的提取局部特征。
  2. Transformer 擅长进行高层全局建模:Self-Attention 机制能够计算序列中任意两个位置的关系,从而构建出远程依赖和全局上下文信息。在 CNN 提取的局部特征基础上,Transformer 可以进一步整合,形成对图像整体的理解。

阅读并了解 Restormer,思考:Transformer 的基本结构为 attention + FFN,这个工作分别做了哪些改进?

  1. 提出了 MDTA 模块,MDTA 是计算通道上的自注意力而不是空间上,通过计算通道上的注意力可以隐式编码全局上下文信息。在计算查询、键、值之前,使用深度卷积操作进行上下文混合,这样可以兼顾全局信息和局部信息。
  2. 提出 GDFN 模块,GDFN 采用门控机制和卷积增强,各层的 GDFN 通过控制信息流来允许每个层次关注与其他层次互补的席位细节。
  3. 采用渐进式学习的方式,在早期阶段,网络在较小的图像块上进行训练,在后期的训练阶段,网络在逐渐增大的图像块上进行训练。

体会

认识到 Transformer 通过自注意力实现全局建模的优势,理解了 Swin 通过局部窗口降低计算复杂度的设计思想。明白了 CNN 提取局部特征与 Transformer 捕获全局依赖的互补性,为后续学习混合架构奠定了基础。视频看的“云里雾里”,无法与之前学的知识结合起来,乱套了,完全不成系统!

http://www.jsqmd.com/news/37793/

相关文章:

  • 一个强大的排序工具
  • 数据采集_2
  • chatTTS源码版本地部署踩的坑
  • 第一讲机器学习基础
  • Linux服务器编程实践20-TCP服务 vs UDP服务:核心差异对比 - 详解
  • 第二十八天
  • 当世人 逐渐将英雄遗忘 我最终展露了疯狂 与烧灼许久的欲望 已无人描绘 我的画像
  • 关于IP、TCP、UDP的校验和计算
  • 元叙事提示注入:突破AI安全边界的攻击技术
  • 【计算机网络表格图表解析】网络体系结构、资料链路层、网络层、传输层、应用层、网络安全、故障排查
  • PWM妙用:解锁LED亮度调节与呼吸灯的LuatOS开发之旅
  • python项目跟练 外星人入侵 01 3个位置
  • ONES 重磅升级|全新内核,深度可配置,适配复杂业务流
  • 类的继承
  • CUDA安装注意事项
  • 豆包Seed-Coder编程能力小试
  • 数据类型 标识符 键盘录入
  • 102302145 黄加鸿 数据采集与融合技术作业2
  • 2025-11-11 早报新闻
  • 详细介绍:Spring Boot
  • echarts获取坐标上的点距离顶部底部高度
  • K8S(九)—— Kubernetes持久化存储深度解析:从Volume到PV/PVC与StorageClass动态存储 - 教程
  • JAVA 随机函数
  • GPIO 也是一个接口,还有 QEMU GPIODEV 和 GUSE - 指南
  • Air780EPM系列低功耗模组USB设计进阶:硬件要点与LuatOS API开发赋能
  • 如何项目管理软件中计算预算?
  • Kimi会员双11砍价成功!0.99元首月链接分享
  • 实用指南:【Qt】9.信号和槽_信号和槽存在的意义
  • DI依赖注入
  • 解码LVGL定时器