码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • VIT(Vision Transformer)学习(三)-纯VIT之swin transformer模型理解


    1. class BalanceLoss(nn.Module):
    2. def __init__(self, ignore_index=255, reduction='mean', weight=None):
    3. super(BalanceLoss, self).__init__()
    4. self.ignore_label = ignore_index
    5. self.reduction = reduction
    6. self.criterion = nn.NLLLoss(reduction=reduction, ignore_index=ignore_index, weight=weight)
    7. def forward(self, pred, target):
    8. # prob = torch.exp(pred)
    9. # # prob = F.softmax(prob, dim=1) # i add this
    10. # weighted_pred = pred * (1 - prob) ** 2
    11. # loss = self.criterion(weighted_pred, target)
    12. prob = torch.exp(pred)
    13. prob = F.softmax(prob, dim=1) # i add this
    14. weighted_pred = F.log_softmax(pred, dim=1) * (1 - prob) ** 2
    15. loss = self.criterion(weighted_pred, target)
    16. return loss

    语义分割网络纯 TRF 结构:VIT主干作为编码器,设计一个基于 TRF 架构的解码器。

    今天学习swin transformer

    源码地址: https://github.com/microsoft/Swin-Transform

    哔哩哔哩讲解:12.1 Swin-Transformer网络结构详解_哔哩哔哩_bilibili

    博文地址:Swin-Transformer网络结构详解_swin transformer-CSDN博客
    up主的github地址:https://github.com/WZMIAOMIAO/deep-learning-for-image-processing

    对比:下采样不一样;窗口分割

    卷积完成以下操作:48个卷积核为4*4,步长为4的进行卷积(听到这发现不太懂,回到了这一步学习Vision Transformer详解-CSDN博客)

    通过Patch Partition ,图像宽高缩减为1/4,通道变为48(16个patch*3个通道)

    通过Linear embedding (Layer Norm),图像channel变为C

    然后就是通过四个Stage构建不同大小的特征图,除了Stage1中先通过一个Linear Embeding层外,剩下三个stage都是先通过一个Patch Merging层进行下采样(后面会细讲)。然后都是重复堆叠Swin Transformer Block注意这里的Block其实有两种结构,如图(b)中所示,这两种结构的不同之处仅在于一个使用了W-MSA结构,一个使用了SW-MSA结构。而且这两个结构是成对使用的,先使用一个W-MSA结构再使用一个SW-MSA结构。所以你会发现堆叠Swin Transformer Block的次数都是偶数(因为成对使用)。

    图(表7)是原论文中给出的关于不同Swin Transformer的配置,T(Tiny),S(Small),B(Base),L(Large),其中:

    win. sz. 7x7表示使用的窗口(Windows)的大小
    dim表示feature map的channel深度(或者说token的向量长度)
    head表示多头注意力模块中head的个数

    最后对于分类网络,后面还会接上一个Layer Norm层、全局池化层以及全连接层得到最终输出。图中没有画,但源码中是这样做的。
     

    Multi-Head Attention

    Transformer中Self-Attention以及Multi-Head Attention详解_哔哩哔哩_bilibili

  • 相关阅读:
    华为小型智能园区网络解决方案
    SkyWalking快速上手(五)——存放在内存、数据持久化
    ollama 开源大语言模型平台
    网课查题公众号如何搭建查题系统
    设计模式之代理模式
    「信号与系统」语音信号的语谱图、尺度变化、带限处理、基音提取
    冰冰学习笔记:string类的简单模拟
    华为云云耀云服务器L实例评测 | 由于自己原因导致MySQL数据库被攻击 【更新中。。。】
    PHP语言基础知识,电商API代码生成
    如何写好设计文档
  • 原文地址:https://blog.csdn.net/weixin_61235989/article/details/133786146
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号