超分之SwinIR

  • SwinIR: Image restoration using Swin Transformer
  • SwinIR: 使用Swin Transformer 进行图像恢复
  • Liang J, Cao J, Sun G, et al.
  • Proceedings of the IEEE/CVF international conference on computer vision. 2021: 1833-1844.

摘要

  • 首先,介绍了Image restoration的含义
    • 图像恢复是一个长期存在的low-level问题,旨在从低质量图像(例如,缩小的、有噪声的和压缩的图像)恢复高质量图像。
  • 接着,指出目前SR技术的sota模型都是基于卷积神经网络,而很少使用Transformer(虽热Transformer在high-level任务上实现了sota)。
  • 然后,提出了本文的sota模型
    • SwinIR—一种基于 Swin Transformer 的baseline模型
    • SwinIR由三部分组成:浅层特征提取、深层特征提取、高质量特征重建。
    • 其中,深层特征提取模块由多个residual Swin Transformer blocks (RSTB)构成,而每个RSTB都有多个Swin Transformer和残差连接。
  • 最后,作者将SwinIR用于图像恢复的三个表征性问题的实验:
    • 图像超分辨率(包括经典、轻量级和真实世界图像超分辨率)
    • 图像去噪(包括灰度和彩色图像去噪)
    • JPEG压缩伪影减少
  • 结论,SwinIR实现了SOTA,并行模型的参数总数大大减少。

1. 引言

  • 首先,介绍了图像恢复技术的含义,以及CNN是此技术的主流框架;虽然CNN比传统技术性能更高,但是CNN作为backbone有两个基本问题。
    1. 图像和卷积核之间的交互是与内容无关的(content-independent)。使用相同的卷积核恢复不同的图像区域可能不是最好的选择。
    2. 在局部处理的原则下,卷积对于长距离依赖建模并不有效
  • 接着,针对CNN的问题,引出了Transformer的定义,虽然对于一些high-level任务(如分类、检测)有良好的性能,但是对于low-level任务(图像恢复)仍然会有一些问题
    • 用于图像恢复的ViT通常将输入图像划分为固定大小(例如 48×48)的块,并独立处理每个块。这种策略不可避免地会产生两个缺点:
    1. 边界像素不能利用块之外的相邻像素来进行图像恢复
    2. 恢复的图像可能会在每个补丁周围引入边界伪影。(虽然这个问题可以通过补丁重叠(patch overlapping)来缓解,但它会带来额外的计算负担。)
  • 然后,指出最近的Swin Transformer有很大的前景,因为它集成了CNN和Transformer的优由势。
    1. 由于局部注意力机制,它具有CNN处理大尺寸图像的优势
    2. 可以通过移位窗口方案对远距离依赖建模,它具有Transformer的优势。
  • 最后,提出了本文的SwinIR模型,以及说明了本模型的优势,实现了SOTA
    • SwinIR:一种基于Swin Transformer 的图像恢复模型
    • SwinIR由三部分组成:浅层特征提取、深层特征提取、高质量特征重建模块。
    • 浅层特征提取模块:
      • 使用卷积层提取浅层特征,提取的浅层特征也直接传输到重建模块以保留低频信息。
    • 深层特征提取模块:
      • 主要由多个residual Swin Transformer blocks (RSTB)构成,每个RSTB利用多个Swin Transformer层进行局部注意力和跨窗口交互。
      • 此外在块的末尾添加了一个卷积层,来进行特征增强,并使用残差连接来为特征融合提供捷径(shortcut)。
    • 高质量特征重建模块:
      • 在重建模块中融合浅层和深层特征,以实现高质量的图像重建。
    • 相对于CNN的IR技术,SwinIR有几个优点
      1. 图像内容和注意力权重之间基于内容的(content-based)交互。(可以理解为空间变换的卷积)
      2. 通过移位窗口机制实现长距离依赖建模
      3. 能够使用更少的参数来获得更高的性能

2. 相关工作

2.1 图像恢复(Image Restoration)

  • 相较于传统的图像恢复技术(列举了几个),基于CNN的IR技术性能更好。
  • CNN_IR经常从大规模配对数据集中学习低质量和高质量图像之间的映射。
  • CNN_IR技术性都是通过使用更复杂的神经网络架构设计(残差块、密集块、其他)
  • 还有一些利用了CNN框架内的注意力机制(通道注意力、非局部注意力、自适应patch aggregation

2.2 视觉Transformer(Vision Transformer, ViT)

  • 用于NLP的的Transformer在high-level的计算机视觉任务中很受欢迎(图像分类、目标检测、分割、人群计数
  • ViT通过探索不同区域之间的全局相互作用来学习关注重要的图像区域。
  • ViT也被引入到low-level的IR任务中(IPT(依赖于大量参数)、VSR-Transformer(用自注意力机制在视频SR中实现更好的特征融合,但图像特征仍然从CNN中提取))
  • 但是IPT和VSR-Transformer都是patch-wise的attention,所以不适用于IR技术。
  • 此外,一项并行工作提出了一种基于Swin Transformer 的U形架构

3. 方法论

![[Pasted image 20240315120526.png]]

3.1 网络结构

![[Pasted image 20240315135235.png]]

 如上图所示,SwinIR由3个模块构成:浅层特征提取、深层特征提取、高质量特征重建。(对于IR的三个表征性任务使用相同的特征提取模块,使用不同的重建模块)

  • 浅层特征提取模块
    F 0 = H S F ( I L Q )     ( 1 ) F_0 = H_{SF}(I_{LQ}) \ \ \ (1) F0=HSF(ILQ)   (1)
    其中:

  • I L Q ∈ R H × W × C i n I_{LQ}\in R^{H×W×C_{in}} ILQRH×W×Cin:输入的低质量图像(low-quality),

  • H S F ( ⋅ ) H_{SF}(·) HSF():浅层特征提取函数,3×3的卷积层。

  • F 0 ∈ R H × W × C F_0\in R^{H×W×C} F0RH×W×C:提取的浅层特征。

  • 使用卷积层提取浅层特征的优势:

    • 卷积层很擅长早期的视觉处理,导致更稳定的优化和更好的结果,它还提供了一种将输入图像空间映射到更高维特征空间的简单方法。
  • 深层特征提取模块
    F D F = H D F ( F 0 )      ( 2 ) F_{DF} = H_{DF}(F_0)\ \ \ \ (2) FDF=HDF(F0)    (2)
    其中:

  • F D F ∈ R H × W × C F_{DF}\in R^{H×W×C} FDFRH×W×C:提取的深层特征。

  • H D F ( ⋅ ) H_{DF}(·) HDF():深层特征提取函数,包含K个residual Swin Transformer blocks(RSTB)和1个3×3的卷积层。
    具体地:
    F i = H R S T B i ( F i − 1 ) , i = 1 , 2 , . . . , K , F D F = H C O N V ( F K )          ( 3 ) \begin{align} F_i = H_{RSTB_i}(F_{i-1}), i = 1, 2, ..., K,\\ F_{DF} = H_{CONV}(F_K) \end{align}\ \ \ \ \ \ \ \ (3) Fi=HRSTBi(Fi1),i=1,2,...,K,FDF=HCONV(FK)        (3)
    其中:

  • F 1 , F 2 , . . . , F K F_1, F_2, ..., F_K F1,F2,...,FK:中间层特征

  • H R S T B ( ⋅ ) H_RSTB(·) HRSTB():第i个RSTB

  • H C O N V ( ⋅ ) H_{CONV}(·) HCONV():最后一个卷积层。

  • 在深层特征提取的最后使用卷积层的优势:

    • 可以将卷积运算的归纳偏差带入基于Transformer的网络中,为后期浅层和深层特征的聚合打下更好的基础。
  • 图像重建模块

  • SR任务(需要上采样操作)
    I R H Q = H R E C ( F 0 + F D F )      ( 4 ) I_{RHQ} = H_{REC}(F_0 + F_{DF}) \ \ \ \ (4) IRHQ=HREC(F0+FDF)    (4)
    其中:

    • R R H Q R_{RHQ} RRHQ:重建的高质量图像(high-quality)。
    • F 0 ∈ R H × W × C F_0\in R^{H×W×C} F0RH×W×C:提取的浅层特征。
    • F D F ∈ R H × W × C F_{DF}\in R^{H×W×C} FDFRH×W×C:提取的深层特征。
    • H R E C H_{REC} HREC:重建模块函数, 这里使用亚像素卷积(sub-pixel convolution)
    • 这里:
      • 浅层特征主要包含低频信息,深层特征侧重于恢复丢失的高频信息,通过长跳跃连接,SwinIR可以将低频信息直接传输到重建模块,这可以帮助深度特征提取模块专注于高频信息并稳定训练。
  • 图像去噪和JPEF压缩伪影减少任务(不需要上采样操作):
    I R H Q = H S w i n I R ( I L Q ) + I L Q      ( 5 ) I_{RHQ} = H_{SwinIR}(I_{LQ}) + I_{LQ}\ \ \ \ (5) IRHQ=HSwinIR(ILQ)+ILQ    (5)
    其中:
    - H S w i n I R H_{SwinIR} HSwinIR:深层特征提取中SwinIR的函数。

  • 损失函数
    l = ∣ ∣ I R H Q − I H Q ∣ ∣ 1       ( 6 ) l = ||I_{RHQ} - I_{HQ}||_1\ \ \ \ \ (6) l=∣∣IRHQIHQ1     (6)
    其中:

  • I R H Q I_{RHQ} IRHQ:将低质量图像 I L Q I_{LQ} ILQ作为SwinIR的输入得到的重建高质量图像。

  • I H Q I_{HQ} IHQ:LQ图像对应的GT图像(ground-truth)。
    对于经典(classical)和轻量级(lightweight)图像SR:

  • 损失函数仅使用公式(6)中的==L1损失==,来显示设计的SwinIR网络的有效性。
    对于真实世界(real-world)图像SR:

  • 损失函数使用==像素损失+GAN损失+感知损失(pixel_loss+GAN_loss+perceptual_loss)==,来提高视觉质量。
    **对于图像去噪和JPEF压缩伪影减少任务:

  • 损失函数使用==Charbonnier loss==:
    l = ∣ ∣ I R H Q − I H Q ∣ ∣ 2 + ϵ 2      ( 7 ) l = \sqrt{||I_{RHQ} - I_{HQ}||^2 + \epsilon^2}\ \ \ \ (7) l=∣∣IRHQIHQ2+ϵ2     (7)
    其中:

  • ϵ \epsilon ϵ:是一个常数,这里为 1 0 − 3 10^{-3} 103

3.2 Residual Swin Transformer Block(RSTB)

![[Pasted image 20240315143654.png]]

 如上图所示,RSTB是具有SwinTransformer layers(STL)和卷积层的残差块
首先,计算经过L个STL的中间特征
F i , j = H S T L i , j ( F i , j − 1 ) , j = 1 , 2 , . . . , L      ( 8 ) F_{i,j} = H_{STL_{i, j}}(F_{i, j-1}), j = 1, 2, ..., L \ \ \ \ (8) Fi,j=HSTLi,j(Fi,j1),j=1,2,...,L    (8)
其中:

  • F i , 0 F_{i, 0} Fi,0:第i个RSTB的输入特征
  • F i , 1 , F i , 2 , . . . , F i , L F_{i, 1}, F_{i, 2},...,F_{i, L} Fi,1,Fi,2,...,Fi,L:L个RSTB中,每个RSTB提取到的中间特征。
  • H S T L i , j ( ⋅ ) H_{STL_{i,j}}(·) HSTLi,j():第i个RSTB中的第j个Swin Transformer 层(STL).
    然后,在残差连接之前,添加一个卷积层:
    F i , o u t = H c o n v i ( F i , L ) + F i , 0     ( 9 ) F_{i, out} = H{conv_i}(F_{i, L}) + F_{i, 0}\ \ \ (9) Fi,out=Hconvi(Fi,L)+Fi,0   (9)
    其中:
  • F i , o u t F_{i, out} Fi,out:第i个RSTN的输出特征。
  • H C O N V i ( ⋅ ) H_{CONV_i}(·) HCONVi():第i个RSTB的卷积层。
    这样RSTB设计有两个优势
    1. 虽然 Transformer 可以被视为空间变化卷积的具体实例,但具有空间不变滤波器的卷积层可以增强 SwinIR 的平移等方差(translational equivariance)。
    2. 残差连接提供了从不同块到重建模块的identity-based连接,允许聚合不同级别的特征。
      在这里插入图片描述

 如上图所示,Swin Transforemr layer(STL)是基于原始的Transforemer层的标准多头自注意力,主要区别在于局部注意力和移动窗口机制。
Swin transformer的原理如下:

  • 给定大小为H×W×C的输入图像,Swin transforemr首先通过将输入图像划分为不重叠的M×M的局部窗口,其形状为 W H M 2 × M 2 × C \frac{WH}{M^2}×M^2×C M2WH×M2×C(这里 W H M 2 \frac{WH}{M^2} M2WH是局部窗口的数量)。 然后它分别计算每个窗口的标准自注意力(即局部注意力),对于局部窗口特征 X ∈ R M 2 × C X\in R^{M^2×C} XRM2×C,quary(Q),key(K),value(V)的计算如下:
    Q = X P Q ,    K = X P K ,    V = X P V    ( 10 ) Q = XP_Q, \ \ K=XP_K,\ \ V=XP_V \ \ (10) Q=XPQ,  K=XPK,  V=XPV  (10)
  • 其中:
    • P Q , P k , P V P_Q, P_k, P_V PQ,Pk,PV:是在不同窗口之间共享的投影矩阵。
    • Q , K , V ∈ R M 2 × d Q, K ,V \in R^{M^2×d} Q,K,VRM2×d:一般来说,X[M, M, C]与Q/K/V[M, M, d]做矩阵乘法运算。
  • 局部窗口的自注意力机制为:
    A t t e n t i o n ( Q , K , V ) = S o f t M a x ( Q K T / d + B ) V      ( 11 ) Attention(Q, K, V) = SoftMax(QK^T/\sqrt d + B)V \ \ \ \ (11) Attention(Q,K,V)=SoftMax(QKT/d +B)V    (11)
  • 其中 :
    • B:可学习的相对位置编码
  • 并且使用h个头并行执行h次注意力函数,然后concatnate,进行多头自注意力(MSA))。然后,MLP由两个之间具有GELU非线性的全连接层组成,用于进一步的特征转换。在MSA和MLP之前添加了层归一化(LN),并且两个模块都使用了残差连接。
    X = M S A ( L N ( X ) ) + X , X = M L P ( L N ( X ) ) + X ,          ( 12 ) \begin{align} X = MSA(LN(X))+X, \\ X = MLP(LN(X))+X, \end{align}\ \ \ \ \ \ \\ \ (12) X=MSA(LN(X))+X,X=MLP(LN(X))+X,       (12)
    然而, 当不同层的分区固定时,局部窗口之间不存在连接。因此交替使用常规的和移位窗口来实现跨窗口连接。
    (其中,移位窗口分区意味着分区之前将特征移位( ⌊ M 2 ⌋ , ⌊ M 2 ⌋ \lfloor \frac{M}{2}\rfloor, \lfloor \frac{M}{2}\rfloor 2M,2M)个像素)

4. 实验

4.1 实验设置

对于任务:经典图像SR,真实世界图像SR,图像去噪,JPEG压缩伪影减少

  • RSTB个数、STL个数、窗口尺寸,通道数,注意力头数:6, 6, 8, 180, 6
    特别地,对于JPEG压缩伪影减少
  • 窗口尺寸为7×7的效果要好于8×8(有可能时因为JPEG编码使用的8×8的图像分区)
    对于轻量级图像SR
  • RSTB个数,通道数量改为:4, 60
    还提出了一个SwinIR的plus版:SwinIR+(使用集成策略测试)
4.2 消融实验

对于经典图像SR任务
- 训练集:DIV2K(x2)
- 测试集:Manga109

  • 对于通道数,RSTB个数,STL个数:

    • PSNR与三个超参数正相关,
    • 鉴于模型参数的balance,通道数,RSTB个数,STL个数: 180,6,6。
      在这里插入图片描述
  • 对于patch size,训练集的数量,迭代次数:

    • pacth:相较于基于CNN的RCAN模型,SwinIR在任何patch size上都表现更好,并且patch size越大,PSNR的增益越高。
    • 训练集的数量:当百分比大于 100%(800 张图像)时,将使用来自 Flickr2K 的额外图像进行训练,有两个观察结果。
      1. SwinIR 的性能随着训练图像数量的增加而提高。
      2. 与 IPT 中基于 Transformer 的模型严重依赖大量训练数据的观察不同,SwinIR 使用相同的训练数据比基于 CNN 的模型取得了更好的结果,即使数据集很小(即 25%, 200 张图片)。
    • 迭代次数:SwinIR比RCAN收敛的更快更好。(与之前的结论矛盾:基于 Transformer 的模型经常会出现模型收敛缓慢的问题。)
      在这里插入图片描述
  • 对于RSTB中残差连接和卷积层的影响:

    • RSTB中的残差连接很重要,能提高模型的PSNR。
    • 使用1×1卷积带来的改进很少。(可能是因为它无法像 3×3 卷积那样提取局部邻近信息)
    • 虽然使用三个3×3卷积层可以减少参数数量,但性能略有下降。
      在这里插入图片描述
4.3 图像SR结果

传统图像SR

  1. 相较于基于CNN的SR技术(DBPN,RCAN,RRDB,SAN,IGNN,HAN,NLSA)和基于Transformer的SR技术(使用大量参数的IPT),实现了SOTA。
  2. 当使用更大的数据集(DIV2K+Flickr2k)训练,SwinIR的性能进一步大幅提升。
  3. 相对于基于CNN的SOTA模型(15.4 - 44.3M),SwinIR的参数更少(11.8M)。
  4. SwinIR可以恢复高频细节并减轻模糊伪影,从而产生清晰自然的边缘。 (基于CNN的方法大多会产生模糊的图像甚至不正确的伪影;IPT虽然可以生成更好的图像,但它会出现图像失真和边界伪影的问题。)

轻量级图像SR

  • 小尺寸的SwinIR与轻量级的SOTA模型(CARN,FALSR-A,IMDN,LAPAR-A,LatticeNet)相比,实现了SOTA。
  • 并且SwinIR架构对于图像恢复非常高效。

真实世界图像SR(用于现实世界的SR技术应用)

  • 与BSRGAN:用于真实世界图像SR的实用退化模型
  • 使用与BSRGAN相同的退化模型来训练SwinIR。以获得LQ图像。
  • 与RealSR、BSRGAN、Real-ESRGAN相比,SwinIR 生成具有清晰锐利边缘的视觉上令人愉悦的图像,(而其他比较方法可能会出现令人不满意的伪影)
  • SwinIR进一步提出了一个大型模型并在更大的数据集上对其进行训练,实验表明,它可以处理更复杂的损坏,并且在真实图像上获得比当前模型更好的性能。
    在这里插入图片描述
4.4 在JPEG压缩伪影减少的结果
  • 这里之前的技术都是基于CNN的模型
  • 与之前最好的模型DRUNet相比,SwinIR只有11.5M参数,而DRUNet是一个大型模型,有32.7M参数
    ![[Pasted image 20240317180949.png]]
4.5 在图像去噪的结果
  • 分别对于灰度噪声和颜色噪声去噪,均实现了SOTA。
  • SwinIR可以消除严重的噪声损坏并保留高频图像细节,从而产生更清晰的边缘和更自然的纹理。(相比之下,其他方法要么过于平滑,要么过于锐利,并且无法恢复丰富的纹理。)
    ![[Pasted image 20240317181019.png]]

5. 结论

  • 本文提出了一种基于 Swin Transformer 的图像恢复模型 SwinIR
  • 该模型由浅层特征提取、深层特征提取和HR重建模块三部分组成。
    • 特别是,我们使用一堆residual Swin Transformer blocks(RSTB)进行深度特征提取;
    • 每个 RSTB 由 Swin Transformer 层、卷积层和残差连接组成。
  • 通过大量实验,SwinIR 在三种代表性图像恢复任务和六种不同设置上实现了最先进的性能:经典图像 SR轻量级图像 SR真实世界图像 SR灰度图像去噪彩色图像去噪JPEG 压缩伪影减少,这证明了所提出的 SwinIR 的有效性和普遍性。
  • SwinIR模型扩展到其他恢复任务,例如图像去模糊和去雨。
----------------------------------------------------------------
        Layer (type)               Output Shape         Param #
================================================================
            Conv2d-1          [1, 60, 264, 184]           1,680
         LayerNorm-2             [1, 48576, 60]             120
        PatchEmbed-3             [1, 48576, 60]               0
           Dropout-4             [1, 48576, 60]               0
         LayerNorm-5             [1, 48576, 60]             120
            Linear-6               [1, 64, 180]          10,980
           Softmax-7             [1, 6, 64, 64]               0
           Dropout-8             [1, 6, 64, 64]               0
            Linear-9                [1, 64, 60]           3,660
          Dropout-10                [1, 64, 60]               0
  WindowAttention-11                [1, 64, 60]               0
         Identity-12             [1, 48576, 60]               0
        LayerNorm-13             [1, 48576, 60]             120
           Linear-14            [1, 48576, 120]           7,320
             GELU-15            [1, 48576, 120]               0
          Dropout-16            [1, 48576, 120]               0
           Linear-17             [1, 48576, 60]           7,260
          Dropout-18             [1, 48576, 60]               0
              Mlp-19             [1, 48576, 60]               0
         Identity-20             [1, 48576, 60]               0
SwinTransformerBlock-21             [1, 48576, 60]               0
        LayerNorm-22             [1, 48576, 60]             120
           Linear-23               [1, 64, 180]          10,980
          Softmax-24             [1, 6, 64, 64]               0
          Dropout-25             [1, 6, 64, 64]               0
           Linear-26                [1, 64, 60]           3,660
          Dropout-27                [1, 64, 60]               0
  WindowAttention-28                [1, 64, 60]               0
         DropPath-29             [1, 48576, 60]               0
        LayerNorm-30             [1, 48576, 60]             120
           Linear-31            [1, 48576, 120]           7,320
             GELU-32            [1, 48576, 120]               0
          Dropout-33            [1, 48576, 120]               0
           Linear-34             [1, 48576, 60]           7,260
          Dropout-35             [1, 48576, 60]               0
              Mlp-36             [1, 48576, 60]               0
         DropPath-37             [1, 48576, 60]               0
SwinTransformerBlock-38             [1, 48576, 60]               0
        LayerNorm-39             [1, 48576, 60]             120
           Linear-40               [1, 64, 180]          10,980
          Softmax-41             [1, 6, 64, 64]               0
          Dropout-42             [1, 6, 64, 64]               0
           Linear-43                [1, 64, 60]           3,660
          Dropout-44                [1, 64, 60]               0
  WindowAttention-45                [1, 64, 60]               0
         DropPath-46             [1, 48576, 60]               0
        LayerNorm-47             [1, 48576, 60]             120
           Linear-48            [1, 48576, 120]           7,320
             GELU-49            [1, 48576, 120]               0
          Dropout-50            [1, 48576, 120]               0
           Linear-51             [1, 48576, 60]           7,260
          Dropout-52             [1, 48576, 60]               0
              Mlp-53             [1, 48576, 60]               0
         DropPath-54             [1, 48576, 60]               0
SwinTransformerBlock-55             [1, 48576, 60]               0
        LayerNorm-56             [1, 48576, 60]             120
           Linear-57               [1, 64, 180]          10,980
          Softmax-58             [1, 6, 64, 64]               0
          Dropout-59             [1, 6, 64, 64]               0
           Linear-60                [1, 64, 60]           3,660
          Dropout-61                [1, 64, 60]               0
  WindowAttention-62                [1, 64, 60]               0
         DropPath-63             [1, 48576, 60]               0
        LayerNorm-64             [1, 48576, 60]             120
           Linear-65            [1, 48576, 120]           7,320
             GELU-66            [1, 48576, 120]               0
          Dropout-67            [1, 48576, 120]               0
           Linear-68             [1, 48576, 60]           7,260
          Dropout-69             [1, 48576, 60]               0
              Mlp-70             [1, 48576, 60]               0
         DropPath-71             [1, 48576, 60]               0
SwinTransformerBlock-72             [1, 48576, 60]               0
        LayerNorm-73             [1, 48576, 60]             120
           Linear-74               [1, 64, 180]          10,980
          Softmax-75             [1, 6, 64, 64]               0
          Dropout-76             [1, 6, 64, 64]               0
           Linear-77                [1, 64, 60]           3,660
          Dropout-78                [1, 64, 60]               0
  WindowAttention-79                [1, 64, 60]               0
         DropPath-80             [1, 48576, 60]               0
        LayerNorm-81             [1, 48576, 60]             120
           Linear-82            [1, 48576, 120]           7,320
             GELU-83            [1, 48576, 120]               0
          Dropout-84            [1, 48576, 120]               0
           Linear-85             [1, 48576, 60]           7,260
          Dropout-86             [1, 48576, 60]               0
              Mlp-87             [1, 48576, 60]               0
         DropPath-88             [1, 48576, 60]               0
SwinTransformerBlock-89             [1, 48576, 60]               0
        LayerNorm-90             [1, 48576, 60]             120
           Linear-91               [1, 64, 180]          10,980
          Softmax-92             [1, 6, 64, 64]               0
          Dropout-93             [1, 6, 64, 64]               0
           Linear-94                [1, 64, 60]           3,660
          Dropout-95                [1, 64, 60]               0
  WindowAttention-96                [1, 64, 60]               0
         DropPath-97             [1, 48576, 60]               0
        LayerNorm-98             [1, 48576, 60]             120
           Linear-99            [1, 48576, 120]           7,320
            GELU-100            [1, 48576, 120]               0
         Dropout-101            [1, 48576, 120]               0
          Linear-102             [1, 48576, 60]           7,260
         Dropout-103             [1, 48576, 60]               0
             Mlp-104             [1, 48576, 60]               0
        DropPath-105             [1, 48576, 60]               0
SwinTransformerBlock-106             [1, 48576, 60]               0
      BasicLayer-107             [1, 48576, 60]               0
    PatchUnEmbed-108          [1, 60, 264, 184]               0
          Conv2d-109          [1, 60, 264, 184]          32,460
      PatchEmbed-110             [1, 48576, 60]               0
            RSTB-111             [1, 48576, 60]               0
       LayerNorm-112             [1, 48576, 60]             120
          Linear-113               [1, 64, 180]          10,980
         Softmax-114             [1, 6, 64, 64]               0
         Dropout-115             [1, 6, 64, 64]               0
          Linear-116                [1, 64, 60]           3,660
         Dropout-117                [1, 64, 60]               0
 WindowAttention-118                [1, 64, 60]               0
        DropPath-119             [1, 48576, 60]               0
       LayerNorm-120             [1, 48576, 60]             120
          Linear-121            [1, 48576, 120]           7,320
            GELU-122            [1, 48576, 120]               0
         Dropout-123            [1, 48576, 120]               0
          Linear-124             [1, 48576, 60]           7,260
         Dropout-125             [1, 48576, 60]               0
             Mlp-126             [1, 48576, 60]               0
        DropPath-127             [1, 48576, 60]               0
SwinTransformerBlock-128             [1, 48576, 60]               0
       LayerNorm-129             [1, 48576, 60]             120
          Linear-130               [1, 64, 180]          10,980
         Softmax-131             [1, 6, 64, 64]               0
         Dropout-132             [1, 6, 64, 64]               0
          Linear-133                [1, 64, 60]           3,660
         Dropout-134                [1, 64, 60]               0
 WindowAttention-135                [1, 64, 60]               0
        DropPath-136             [1, 48576, 60]               0
       LayerNorm-137             [1, 48576, 60]             120
          Linear-138            [1, 48576, 120]           7,320
            GELU-139            [1, 48576, 120]               0
         Dropout-140            [1, 48576, 120]               0
          Linear-141             [1, 48576, 60]           7,260
         Dropout-142             [1, 48576, 60]               0
             Mlp-143             [1, 48576, 60]               0
        DropPath-144             [1, 48576, 60]               0
SwinTransformerBlock-145             [1, 48576, 60]               0
       LayerNorm-146             [1, 48576, 60]             120
          Linear-147               [1, 64, 180]          10,980
         Softmax-148             [1, 6, 64, 64]               0
         Dropout-149             [1, 6, 64, 64]               0
          Linear-150                [1, 64, 60]           3,660
         Dropout-151                [1, 64, 60]               0
 WindowAttention-152                [1, 64, 60]               0
        DropPath-153             [1, 48576, 60]               0
       LayerNorm-154             [1, 48576, 60]             120
          Linear-155            [1, 48576, 120]           7,320
            GELU-156            [1, 48576, 120]               0
         Dropout-157            [1, 48576, 120]               0
          Linear-158             [1, 48576, 60]           7,260
         Dropout-159             [1, 48576, 60]               0
             Mlp-160             [1, 48576, 60]               0
        DropPath-161             [1, 48576, 60]               0
SwinTransformerBlock-162             [1, 48576, 60]               0
       LayerNorm-163             [1, 48576, 60]             120
          Linear-164               [1, 64, 180]          10,980
         Softmax-165             [1, 6, 64, 64]               0
         Dropout-166             [1, 6, 64, 64]               0
          Linear-167                [1, 64, 60]           3,660
         Dropout-168                [1, 64, 60]               0
 WindowAttention-169                [1, 64, 60]               0
        DropPath-170             [1, 48576, 60]               0
       LayerNorm-171             [1, 48576, 60]             120
          Linear-172            [1, 48576, 120]           7,320
            GELU-173            [1, 48576, 120]               0
         Dropout-174            [1, 48576, 120]               0
          Linear-175             [1, 48576, 60]           7,260
         Dropout-176             [1, 48576, 60]               0
             Mlp-177             [1, 48576, 60]               0
        DropPath-178             [1, 48576, 60]               0
SwinTransformerBlock-179             [1, 48576, 60]               0
       LayerNorm-180             [1, 48576, 60]             120
          Linear-181               [1, 64, 180]          10,980
         Softmax-182             [1, 6, 64, 64]               0
         Dropout-183             [1, 6, 64, 64]               0
          Linear-184                [1, 64, 60]           3,660
         Dropout-185                [1, 64, 60]               0
 WindowAttention-186                [1, 64, 60]               0
        DropPath-187             [1, 48576, 60]               0
       LayerNorm-188             [1, 48576, 60]             120
          Linear-189            [1, 48576, 120]           7,320
            GELU-190            [1, 48576, 120]               0
         Dropout-191            [1, 48576, 120]               0
          Linear-192             [1, 48576, 60]           7,260
         Dropout-193             [1, 48576, 60]               0
             Mlp-194             [1, 48576, 60]               0
        DropPath-195             [1, 48576, 60]               0
SwinTransformerBlock-196             [1, 48576, 60]               0
       LayerNorm-197             [1, 48576, 60]             120
          Linear-198               [1, 64, 180]          10,980
         Softmax-199             [1, 6, 64, 64]               0
         Dropout-200             [1, 6, 64, 64]               0
          Linear-201                [1, 64, 60]           3,660
         Dropout-202                [1, 64, 60]               0
 WindowAttention-203                [1, 64, 60]               0
        DropPath-204             [1, 48576, 60]               0
       LayerNorm-205             [1, 48576, 60]             120
          Linear-206            [1, 48576, 120]           7,320
            GELU-207            [1, 48576, 120]               0
         Dropout-208            [1, 48576, 120]               0
          Linear-209             [1, 48576, 60]           7,260
         Dropout-210             [1, 48576, 60]               0
             Mlp-211             [1, 48576, 60]               0
        DropPath-212             [1, 48576, 60]               0
SwinTransformerBlock-213             [1, 48576, 60]               0
      BasicLayer-214             [1, 48576, 60]               0
    PatchUnEmbed-215          [1, 60, 264, 184]               0
          Conv2d-216          [1, 60, 264, 184]          32,460
      PatchEmbed-217             [1, 48576, 60]               0
            RSTB-218             [1, 48576, 60]               0
       LayerNorm-219             [1, 48576, 60]             120
          Linear-220               [1, 64, 180]          10,980
         Softmax-221             [1, 6, 64, 64]               0
         Dropout-222             [1, 6, 64, 64]               0
          Linear-223                [1, 64, 60]           3,660
         Dropout-224                [1, 64, 60]               0
 WindowAttention-225                [1, 64, 60]               0
        DropPath-226             [1, 48576, 60]               0
       LayerNorm-227             [1, 48576, 60]             120
          Linear-228            [1, 48576, 120]           7,320
            GELU-229            [1, 48576, 120]               0
         Dropout-230            [1, 48576, 120]               0
          Linear-231             [1, 48576, 60]           7,260
         Dropout-232             [1, 48576, 60]               0
             Mlp-233             [1, 48576, 60]               0
        DropPath-234             [1, 48576, 60]               0
SwinTransformerBlock-235             [1, 48576, 60]               0
       LayerNorm-236             [1, 48576, 60]             120
          Linear-237               [1, 64, 180]          10,980
         Softmax-238             [1, 6, 64, 64]               0
         Dropout-239             [1, 6, 64, 64]               0
          Linear-240                [1, 64, 60]           3,660
         Dropout-241                [1, 64, 60]               0
 WindowAttention-242                [1, 64, 60]               0
        DropPath-243             [1, 48576, 60]               0
       LayerNorm-244             [1, 48576, 60]             120
          Linear-245            [1, 48576, 120]           7,320
            GELU-246            [1, 48576, 120]               0
         Dropout-247            [1, 48576, 120]               0
          Linear-248             [1, 48576, 60]           7,260
         Dropout-249             [1, 48576, 60]               0
             Mlp-250             [1, 48576, 60]               0
        DropPath-251             [1, 48576, 60]               0
SwinTransformerBlock-252             [1, 48576, 60]               0
       LayerNorm-253             [1, 48576, 60]             120
          Linear-254               [1, 64, 180]          10,980
         Softmax-255             [1, 6, 64, 64]               0
         Dropout-256             [1, 6, 64, 64]               0
          Linear-257                [1, 64, 60]           3,660
         Dropout-258                [1, 64, 60]               0
 WindowAttention-259                [1, 64, 60]               0
        DropPath-260             [1, 48576, 60]               0
       LayerNorm-261             [1, 48576, 60]             120
          Linear-262            [1, 48576, 120]           7,320
            GELU-263            [1, 48576, 120]               0
         Dropout-264            [1, 48576, 120]               0
          Linear-265             [1, 48576, 60]           7,260
         Dropout-266             [1, 48576, 60]               0
             Mlp-267             [1, 48576, 60]               0
        DropPath-268             [1, 48576, 60]               0
SwinTransformerBlock-269             [1, 48576, 60]               0
       LayerNorm-270             [1, 48576, 60]             120
          Linear-271               [1, 64, 180]          10,980
         Softmax-272             [1, 6, 64, 64]               0
         Dropout-273             [1, 6, 64, 64]               0
          Linear-274                [1, 64, 60]           3,660
         Dropout-275                [1, 64, 60]               0
 WindowAttention-276                [1, 64, 60]               0
        DropPath-277             [1, 48576, 60]               0
       LayerNorm-278             [1, 48576, 60]             120
          Linear-279            [1, 48576, 120]           7,320
            GELU-280            [1, 48576, 120]               0
         Dropout-281            [1, 48576, 120]               0
          Linear-282             [1, 48576, 60]           7,260
         Dropout-283             [1, 48576, 60]               0
             Mlp-284             [1, 48576, 60]               0
        DropPath-285             [1, 48576, 60]               0
SwinTransformerBlock-286             [1, 48576, 60]               0
       LayerNorm-287             [1, 48576, 60]             120
          Linear-288               [1, 64, 180]          10,980
         Softmax-289             [1, 6, 64, 64]               0
         Dropout-290             [1, 6, 64, 64]               0
          Linear-291                [1, 64, 60]           3,660
         Dropout-292                [1, 64, 60]               0
 WindowAttention-293                [1, 64, 60]               0
        DropPath-294             [1, 48576, 60]               0
       LayerNorm-295             [1, 48576, 60]             120
          Linear-296            [1, 48576, 120]           7,320
            GELU-297            [1, 48576, 120]               0
         Dropout-298            [1, 48576, 120]               0
          Linear-299             [1, 48576, 60]           7,260
         Dropout-300             [1, 48576, 60]               0
             Mlp-301             [1, 48576, 60]               0
        DropPath-302             [1, 48576, 60]               0
SwinTransformerBlock-303             [1, 48576, 60]               0
       LayerNorm-304             [1, 48576, 60]             120
          Linear-305               [1, 64, 180]          10,980
         Softmax-306             [1, 6, 64, 64]               0
         Dropout-307             [1, 6, 64, 64]               0
          Linear-308                [1, 64, 60]           3,660
         Dropout-309                [1, 64, 60]               0
 WindowAttention-310                [1, 64, 60]               0
        DropPath-311             [1, 48576, 60]               0
       LayerNorm-312             [1, 48576, 60]             120
          Linear-313            [1, 48576, 120]           7,320
            GELU-314            [1, 48576, 120]               0
         Dropout-315            [1, 48576, 120]               0
          Linear-316             [1, 48576, 60]           7,260
         Dropout-317             [1, 48576, 60]               0
             Mlp-318             [1, 48576, 60]               0
        DropPath-319             [1, 48576, 60]               0
SwinTransformerBlock-320             [1, 48576, 60]               0
      BasicLayer-321             [1, 48576, 60]               0
    PatchUnEmbed-322          [1, 60, 264, 184]               0
          Conv2d-323          [1, 60, 264, 184]          32,460
      PatchEmbed-324             [1, 48576, 60]               0
            RSTB-325             [1, 48576, 60]               0
       LayerNorm-326             [1, 48576, 60]             120
          Linear-327               [1, 64, 180]          10,980
         Softmax-328             [1, 6, 64, 64]               0
         Dropout-329             [1, 6, 64, 64]               0
          Linear-330                [1, 64, 60]           3,660
         Dropout-331                [1, 64, 60]               0
 WindowAttention-332                [1, 64, 60]               0
        DropPath-333             [1, 48576, 60]               0
       LayerNorm-334             [1, 48576, 60]             120
          Linear-335            [1, 48576, 120]           7,320
            GELU-336            [1, 48576, 120]               0
         Dropout-337            [1, 48576, 120]               0
          Linear-338             [1, 48576, 60]           7,260
         Dropout-339             [1, 48576, 60]               0
             Mlp-340             [1, 48576, 60]               0
        DropPath-341             [1, 48576, 60]               0
SwinTransformerBlock-342             [1, 48576, 60]               0
       LayerNorm-343             [1, 48576, 60]             120
          Linear-344               [1, 64, 180]          10,980
         Softmax-345             [1, 6, 64, 64]               0
         Dropout-346             [1, 6, 64, 64]               0
          Linear-347                [1, 64, 60]           3,660
         Dropout-348                [1, 64, 60]               0
 WindowAttention-349                [1, 64, 60]               0
        DropPath-350             [1, 48576, 60]               0
       LayerNorm-351             [1, 48576, 60]             120
          Linear-352            [1, 48576, 120]           7,320
            GELU-353            [1, 48576, 120]               0
         Dropout-354            [1, 48576, 120]               0
          Linear-355             [1, 48576, 60]           7,260
         Dropout-356             [1, 48576, 60]               0
             Mlp-357             [1, 48576, 60]               0
        DropPath-358             [1, 48576, 60]               0
SwinTransformerBlock-359             [1, 48576, 60]               0
       LayerNorm-360             [1, 48576, 60]             120
          Linear-361               [1, 64, 180]          10,980
         Softmax-362             [1, 6, 64, 64]               0
         Dropout-363             [1, 6, 64, 64]               0
          Linear-364                [1, 64, 60]           3,660
         Dropout-365                [1, 64, 60]               0
 WindowAttention-366                [1, 64, 60]               0
        DropPath-367             [1, 48576, 60]               0
       LayerNorm-368             [1, 48576, 60]             120
          Linear-369            [1, 48576, 120]           7,320
            GELU-370            [1, 48576, 120]               0
         Dropout-371            [1, 48576, 120]               0
          Linear-372             [1, 48576, 60]           7,260
         Dropout-373             [1, 48576, 60]               0
             Mlp-374             [1, 48576, 60]               0
        DropPath-375             [1, 48576, 60]               0
SwinTransformerBlock-376             [1, 48576, 60]               0
       LayerNorm-377             [1, 48576, 60]             120
          Linear-378               [1, 64, 180]          10,980
         Softmax-379             [1, 6, 64, 64]               0
         Dropout-380             [1, 6, 64, 64]               0
          Linear-381                [1, 64, 60]           3,660
         Dropout-382                [1, 64, 60]               0
 WindowAttention-383                [1, 64, 60]               0
        DropPath-384             [1, 48576, 60]               0
       LayerNorm-385             [1, 48576, 60]             120
          Linear-386            [1, 48576, 120]           7,320
            GELU-387            [1, 48576, 120]               0
         Dropout-388            [1, 48576, 120]               0
          Linear-389             [1, 48576, 60]           7,260
         Dropout-390             [1, 48576, 60]               0
             Mlp-391             [1, 48576, 60]               0
        DropPath-392             [1, 48576, 60]               0
SwinTransformerBlock-393             [1, 48576, 60]               0
       LayerNorm-394             [1, 48576, 60]             120
          Linear-395               [1, 64, 180]          10,980
         Softmax-396             [1, 6, 64, 64]               0
         Dropout-397             [1, 6, 64, 64]               0
          Linear-398                [1, 64, 60]           3,660
         Dropout-399                [1, 64, 60]               0
 WindowAttention-400                [1, 64, 60]               0
        DropPath-401             [1, 48576, 60]               0
       LayerNorm-402             [1, 48576, 60]             120
          Linear-403            [1, 48576, 120]           7,320
            GELU-404            [1, 48576, 120]               0
         Dropout-405            [1, 48576, 120]               0
          Linear-406             [1, 48576, 60]           7,260
         Dropout-407             [1, 48576, 60]               0
             Mlp-408             [1, 48576, 60]               0
        DropPath-409             [1, 48576, 60]               0
SwinTransformerBlock-410             [1, 48576, 60]               0
       LayerNorm-411             [1, 48576, 60]             120
          Linear-412               [1, 64, 180]          10,980
         Softmax-413             [1, 6, 64, 64]               0
         Dropout-414             [1, 6, 64, 64]               0
          Linear-415                [1, 64, 60]           3,660
         Dropout-416                [1, 64, 60]               0
 WindowAttention-417                [1, 64, 60]               0
        DropPath-418             [1, 48576, 60]               0
       LayerNorm-419             [1, 48576, 60]             120
          Linear-420            [1, 48576, 120]           7,320
            GELU-421            [1, 48576, 120]               0
         Dropout-422            [1, 48576, 120]               0
          Linear-423             [1, 48576, 60]           7,260
         Dropout-424             [1, 48576, 60]               0
             Mlp-425             [1, 48576, 60]               0
        DropPath-426             [1, 48576, 60]               0
SwinTransformerBlock-427             [1, 48576, 60]               0
      BasicLayer-428             [1, 48576, 60]               0
    PatchUnEmbed-429          [1, 60, 264, 184]               0
          Conv2d-430          [1, 60, 264, 184]          32,460
      PatchEmbed-431             [1, 48576, 60]               0
            RSTB-432             [1, 48576, 60]               0
       LayerNorm-433             [1, 48576, 60]             120
    PatchUnEmbed-434          [1, 60, 264, 184]               0
          Conv2d-435          [1, 60, 264, 184]          32,460
          Conv2d-436          [1, 12, 264, 184]           6,492
    PixelShuffle-437           [1, 3, 528, 368]               0
================================================================
Total params: 877,752
Trainable params: 877,752
Non-trainable params: 0
----------------------------------------------------------------
Input size (MB): 0.56
Forward/backward pass size (MB): 8093.90
Params size (MB): 3.35
Estimated Total Size (MB): 8097.80
----------------------------------------------------------------

  • 30
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值